Сортировка столбца VARCHAR как FLOAT с использованием оператора CAST не работает в MySQL

Я не могу найти способ сортировки столбца 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 или я сделал что-то неправильно?

Ответ 1

Попробуйте этот трюк (помогает сортировать строки как числа) -

SELECT guid, number FROM table ORDER BY number * 1 DESC

Это поможет MySQL вывести строку в число.


Другое решение -

...CAST(value as DECIMAL(10,5))

Ответ 2

Если вы приняли GUID, размер должен быть varchar(40) Установлено, что вы можете использовать uuid()

Я сделал это с помощью

select uuid(), number order by 'cast(number as float) desc';

Он работает нормально. Если вы этого не хотите, можете ли вы отправить весь код?