mysql - 如何查询这个..(对字段进行排序,并将具有空值的行放在最后)

标签 mysql sql syntax

我有一个名为 sample 的表,有 3 列:idkidshobby

记录:

1, John
2, Jacob, Computer Games
3, Joe, Swimming
4, Joan, Basketball
5, Jose

很明显,John 和 Jose 在字段 hobby 中具有空值 我想要查询的是要显示的记录(当排序字段 hobby ASC 时) 应该是:

4, Joan, Basketball
2, Jacob, Computer Games
3, Joe, Swimming
1, John
5, Jose

(我有代码,其中我单击一个按钮,查询的顺序先升序再降序,反之亦然,每次单击) 如果我想下降,我希望显示记录:

3, Joe, Swimming
2, Jacob, Computer Games
4, Joan, Basketball
1, John
5, Jose

我想知道正确的 ORDER BY 语法。 我的问题说清楚了吗?但愿如此。请帮助:)

最佳答案

数据库不会关注 order by 中的 NULL 值,因此您可以这样做来实现您想要的输出。

SELECT id, kids, hobby
WHERE hobby IS NOT NULL
ORDER BY hobby
UNION
SELECT id, kids, hobby
WHERE hobby IS NULL

关于mysql - 如何查询这个..(对字段进行排序,并将具有空值的行放在最后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34753198/

相关文章:

用于选择具有相同对应列值的那两个列值的mysql查询

mysql - 如何将同一个表中的多行合并为 1 行,在 sql 连接中使用 laravel 查询生成器的不同列

syntax - 手册页的 SYNOPSIS 部分是否有规范?

scala - Scala 的匹配是否是表达式?

PHP 查询将多个随机长度数组写入 MySQL 数据库中的同一个表,而不会出现 "Undefined offset"错误

java - Spring Boot Mongo DB .yml 配置

phpmyadmin 带有外来字符的 csv 导入无法正常工作

JOIN 中的 MySQL LIMIT

MySQL 选择使用组和计数连接表

javascript - 有没有建立方便的javascript回调写法?