MySQL不正确的DECIMAL顺序?

时间:2012-12-12 06:37:41

标签: mysql

当我从MySQL表中选择数据并按DECIMALDESCENDING订购时,这是订单:

3, 2, 1, -1, 0

为什么会这样?

如何正确设置订单以便:

3, 2, 1, 0, -1

修改 实际上,问题在于NULL数据。这是它的命令:

3, 2, 1, -1, NULL, NULL

这是所需的顺序:

3, 2, 1, NULL, NULL, -1

3 个答案:

答案 0 :(得分:4)

COALESCE子句中使用ORDER BY

SELECT *
FROM tableName
ORDER BY COALESCE(columnName, 0) DESC

答案 1 :(得分:0)

使用以下语法

ORDER BY column DESC

答案 2 :(得分:0)

如果您使用带有空值的列进行排序,则它们始终位于结果的开头或结尾。 Null意味着未知,而不是零。

如果您想将它们视为零,则可以在select语句中使用ifnull(column, 0)