Процент ORDER BY в mysql - 100% перемещается в конец - PullRequest
0 голосов
/ 03 февраля 2020

вот мой запрос, чтобы упорядочить процент в правильном порядке снижения.

SELECT
id, 
concat(round(100 * ( count(t5.answ IN (t1.answ, t2.answ, t3.answ)) ) / case when t6.name < 4 then 100 when t6.name = 4 then 200 when t6.name > 4 then 300 end,0)) as score,
another_column
from t1
order by score desc

score вывод

91%, 96%, 100%, 92%, 

Что я ищу для этого

100%, 96%, 92%, 91%

но что я получаю, это то, что 100% перемещается в конец

order by score desc
// 96%, 92%, 91%, 100%

1 Ответ

3 голосов
/ 03 февраля 2020

Это потому, что вы упорядочиваете по строке, а не по номеру. Учитывая сложность выражения, просто переведите обратно в число для заказа:

order by (score + 0) desc
...