|
|
|
| в таблице имеется поле в котором записывается целое число - количество скачанной информации юзером в байтах. т.е. то простое число которое может быть оочень дольшой длины, но т.к. данная запись использовалась только лишь для вывода инфы, то полю псотавил тип char(15);
теперь появилась необходимость сортировать вывод по данному полю, т.е. по числу скачанных байт, и тут я столкнулся с ошибочной сортировкой. Точнее сортировка верная, если рассматривать поле как текстовое и текст сравнивается верно.
Например у нас есть числа 99, 999, 1000, 9999 если я делаю в условии сортировку типа
select * from users order by bytes desc;
|
то получаю список в виде 9999, 999, 99, 1000.
естественно это немного не то что мне нужно. Нужно чтобы числа сортировались как числа. (9999, 1000, 999, 99) Поэтому полю пришлось поставить тип BIGINT(); и теперь всё нормально.
вопрос в том можно ли как-то сделать сортировку чисел в обычном числовом порядке но чтобы полю не присваивать числовой тип данных полю?
потому что не хочется юзать тяжёлый тип данных BIGINT() вместо CHAR() с ограниченной длиной строки. | |
|
|