首页 > 数据库 > mysql教程 > 如何在 MySQL 中按数字排序并将 NULL 放在最后?

如何在 MySQL 中按数字排序并将 NULL 放在最后?

Susan Sarandon
发布: 2024-12-27 20:18:10
原创
291 人浏览过

How to Order by a Number and Place NULLs Last in MySQL?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板