Ответ 1
Попробуйте этот трюк (помогает сортировать строки как числа) -
SELECT guid, number FROM table ORDER BY number * 1 DESC
Это поможет MySQL вывести строку в число.
Другое решение -
...CAST(value as DECIMAL(10,5))
Я не могу найти способ сортировки столбца 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 или я сделал что-то неправильно?
Попробуйте этот трюк (помогает сортировать строки как числа) -
SELECT guid, number FROM table ORDER BY number * 1 DESC
Это поможет MySQL вывести строку в число.
Другое решение -
...CAST(value as DECIMAL(10,5))
Если вы приняли GUID, размер должен быть varchar(40)
Установлено, что вы можете использовать uuid()
Я сделал это с помощью
select uuid(), number order by 'cast(number as float) desc';
Он работает нормально. Если вы этого не хотите, можете ли вы отправить весь код?