1

当我从 MySQL 表中选择数据并按DECIMALcolumn排序时DESCENDING,顺序如下:

3, 2, 1, -1, 0

为什么会这样?

如何正确设置订单,使其成为:

3, 2, 1, 0, -1?

编辑 实际上,问题出在 NULL 数据上。这是它的顺序:

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

这是所需的顺序:

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

3 回答 3

4

COALESCE在你的ORDER BY条款中使用

SELECT *
FROM tableName
ORDER BY COALESCE(columnName, 0) DESC
于 2012-12-12T06:39:32.063 回答
0

如果您按包含空值的列进行排序,它们总是会出现在结果的开头或结尾。Null 表示未知,而不是零。

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

于 2012-12-12T06:46:10.077 回答
0

使用以下语法

ORDER BY column DESC
于 2012-12-12T06:41:06.680 回答