Сортировка столбца VARCHAR как FLOAT с использованием оператора CAST не работает в MySQL
146
17
Я не могу найти способ сортировки столбца varchar, отлитого как float. Вот мой запрос SQL:
SELECT guid, number FROM table ORDER BY 'CAST(number AS FLOAT) DESC'
Столбец "число" определяется следующим образом:
number varchar(20) ascii_general_ci
И значения, определенные в этом столбце для моего теста:
0.00
200.00
20.00
100.00
MySQL полностью игнорирует оператор CAST и сортирует столбцы с помощью guid...
Есть ли ошибка в MySQL или я сделал что-то неправильно?
спросил(а)
2012-05-17T13:11:00+04:00
8 лет, 8 месяцев назад
добавить комментарий
пожаловаться
Решение
242
Попробуйте этот трюк (помогает сортировать строки как числа) -
SELECT guid, number FROM table ORDER BY number * 1 DESC
Это поможет MySQL вывести строку в число.
Другое решение -
...CAST(value as DECIMAL(10,5))
ответил(а)
2012-05-17T13:28:00+04:00
8 лет, 8 месяцев назад
добавить комментарий
пожаловаться
42
Если вы приняли GUID, размер должен быть varchar(40)
Установлено, что вы можете использовать uuid()
Я сделал это с помощью
select uuid(), number order by 'cast(number as float) desc';
Он работает нормально. Если вы этого не хотите, можете ли вы отправить весь код?
ответил(а)
2012-05-17T13:38:00+04:00
8 лет, 8 месяцев назад
добавить комментарий
пожаловаться
Ваш ответ