MySQL:按数字和最后的空值排序
在 SQL 查询中,按数字字段对数据进行排序非常简单。然而,在这种情况下管理空值需要仔细考虑。在 MySQL 中,默认情况下,在使用 ASC 或 DESC 排序时,空值被视为 0,这可能会导致不期望的结果。
为了解决这个问题,MySQL 提供了一种非常规语法,将空值优先排序在最后。条款。通过在列名称前放置减号 (-) 并反转顺序(ASC 到 DESC 或反之亦然),您可以有效地反转 null 的排序行为。
例如,如果您希望对名为“position”的列按升序排列(空值除外),然后按降序排列与“id”的关系,您可以使用以下命令语法:
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC
此排序将产生以下序列:
1, 2, 3, 4, NULL, NULL, NULL
本质上,此语法反转“位置”列的排序,将空值放在最后,同时保持非空值的所需排序。
请记住,此语法未记录在案,并且可能并非所有版本的 MySQL 都支持。此外,在查询中实施任何高级排序技术之前,仔细查看文档始终是一个好习惯。
以上是如何在 MySQL 中按数字排序并将 NULL 放在最后?的详细内容。更多信息请关注PHP中文网其他相关文章!