|
|
|
| столбец типа VARCHAR содержит числа. логично было бы поменять тип на интеджер, НО некоторые ячейки содержат значения вида 12(3).
собственно сортируется всё это коряво... может есть способ какой нибудь ? ) | |
|
|
|
|
|
|
|
для: kusuk
(07.05.2009 в 11:50)
| | 12(3) это не число. а значит о какой-либо числовой сортировке речь идти не должна. | |
|
|
|
|
|
|
|
для: Trianon
(07.05.2009 в 12:00)
| | т.е. вариантов нет ? =( | |
|
|
|
|
|
|
|
для: Kusuk
(07.05.2009 в 12:04)
| | Иногда меня устраивает вот такая сортировка:
SELECT * FROM pokaz_rekl ORDER BY CAST(clik as UNSIGNED) DESC
|
| |
|
|
|
|
|
|
|
для: Владимир55
(07.05.2009 в 12:06)
| | (удивленно) clik не влезает в целый диапазон? | |
|
|
|
|
|
|
|
для: Trianon
(07.05.2009 в 12:11)
| | Получается так, что результаты сортировки больше похожи на то, как это делает человек исходя из своих привычек. | |
|
|
|
|
|
|
|
для: Владимир55
(07.05.2009 в 12:15)
| | ну а исходный тип этого поля какой? | |
|
|
|
|
|
|
|
для: Trianon
(07.05.2009 в 12:32)
| | VARCHAR | |
|
|
|
|
|
|
|
для: Владимир55
(07.05.2009 в 13:10)
| | Но почему, христа ради?
Ведь если тип поля сделать INT, то сортировка будет идти безо всяких ухищрений вроде CAST. | |
|
|
|
|
|
|
|
для: Trianon
(07.05.2009 в 13:50)
| | Все так оно и есть, как Вы говорите!
Но если содержимое сортируемого параметра имеет вид
то желательная мне сортировка получается получается лишь таким образом.
Во всяком случае, так получается у меня (хотя может можно и лучше). | |
|
|
|
|
|
|
|
для: Владимир55
(07.05.2009 в 14:05)
| | >Но если содержимое сортируемого параметра имеет вид
>
то обычно этот параметр называется не click.
>то желательная мне сортировка получается получается лишь таким образом.
>Во всяком случае, так получается у меня (хотя может можно и лучше).
Само собой. достаточно лишь называть файлы числами с явными нулями. 000.htm 010.htm и т.д. | |
|
|
|
|
|
|
|
для: kusuk
(07.05.2009 в 11:50)
| | >12(3)
Если не сложно, расшифруйте значение?
PS В принципе никогда не поздно, изменить структуру таблицы, создать дополнительное поле, перегнать туда (3), удалить этот суффикс из первого поля и изменить тип обоих полей. В принципе в этом и заключается задача программиста базы данных - постоянно её модифицировать, чтобы выжать из неё всё что можно. Существует только два фундаментальных способа оптимизации обслуживающего кода и баз данных: чтобы было удобно программистам (скорость разработки) и машине (скорость вычисления). Начинают с первого способа, если не хватает мощности, переходят ко второму. Зачастую, за один год можно от первого ко второму способу оптимизации и обратно скакать раза 3-4, в зависимости от политического, временного, денежного, вычислительного или эргономического фактора. Бояться этого не нужно, в этом и состоит жизнь боевого (а не академического) программиста. | |
|
|
|
|
|
|
|
для: cheops
(07.05.2009 в 12:05)
| | в столбце хранятся номера квартир, но т.к. есть общежития то соостветсвенно добавляется номер комнаты.
в общем нашел выход.
тип double и через точку указывать номер комнаты | |
|
|
|
|
|
|
|
для: Kusuk
(07.05.2009 в 12:20)
| | Лучше DECIMAL используйте - он гораздо точнее классического числа с плавающей точкой. | |
|
|
|
|
|
|
|
для: cheops
(07.05.2009 в 12:28)
| | 8 байт как с куста .
Однозначно лучше отдельную колонку для номера комнаты завести вида TINYINT(1) NULL
А исходную сделать SMALLINT | |
|
|
|
|
|
|
|
для: Trianon
(07.05.2009 в 12:36)
| | может это и будет правильней, но при нынешних ресурсах 8 байт ниочём =) | |
|
|
|
|
|
|
|
для: Kusuk
(07.05.2009 в 12:39)
| | Правильней это не только с точки зрения экономии ресурсов. | |
|
|
|