我使用MySQL已经很长时间了,从来没有遇到过这个问题。我有一个存储应用程序分数的表。出于某种原因,当我按 score ASC
排序时,最高分显示在最前面,最低分显示在最后。请看下面的截图:
这是我的查询:
SELECT category, subject, max(score) as score FROM scores
WHERE customer_id = 1086 AND category = 'Business'
GROUP BY subject ORDER BY score ASC
关于为什么会发生这种情况有什么想法吗?
最佳答案
将分数的数据类型从字符串(例如 varchar/text)更改为数字(例如 int)。这应该可以解决排序问题。
当值按字符串排序(按字母顺序)时,“60”中的“6”排在“8”之前。
作为临时解决方法,您还可以尝试 order by score+0 asc
尝试将您的值转换为数字。
关于php - MySQL 没有正确排序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21448165/