MySQL ORDER BY带负数的数值问题

我使用的查询使用:

ORDER BY score DESC;

‘得分’只保存数值,也可以是负值.它们似乎没有以正确的顺序显示.负数可以出现在正数之上.

有谁知道我应该使用这样的查询来显示它们:

> 10
> 5
> 1
> -1
> -5
> -10

还要阻止他们这样做:

* 1
* 10
* 11
* 123
* 1234
* 2
* 25
* 253
* 34

谢谢.

最佳答案
order by cast(score as int) desc;

您似乎将数字数据存储在字符串数据类型中.将得分作为数字数据类型(如int)会更好.

转载注明原文:MySQL ORDER BY带负数的数值问题 - 代码日志