如何对最后带有空值的 MySQL 结果进行排序
当对带有数字列的 MySQL 结果进行排序时,空值可能会出现问题,因为它们是视为零。这可能会导致意外的排序,即空值出现在非空值之前。
为了解决此问题,MySQL 提供了一种未记录的语法,允许您将空值放在最后排序。这是通过在列名之前放置一个减号 (-) 并将 ASC 切换为 DESC 来实现的:
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC
此语法本质上反转了位置 DESC 排序,将空值放在最后,同时保持与非空值。
例如,如果您有以下数据:
NULL, NULL, NULL, 1, 2, 3, 4
使用标准ORDER BY position ASC, id DESC 语句将导致:
NULL, NULL, NULL, 1, 2, 3, 4
但是,使用 -position DESC 语法将产生所需的排序:
1, 2, 3, 4, NULL, NULL, NULL
此未记录的语法提供了方便的确保空值在 MySQL 结果中排在最后的方法。需要注意的是,这不是标准的 SQL 功能,并且可能并非所有数据库系统都支持。
以上是如何对最后带有 NULL 值的 MySQL 结果进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!