在 MySQL 中,NULL 值的默认排序规则取决于排序方向(升序或降序)
对比
升序排序 (ASC) ↑
NULL 值在升序排序中被认为是最大的值。(从小到大排序)
所以,在升序排序的结果集中,NULL 值会排在最后。
降序排序 (DESC) ↓
NULL 值在降序排序中被认为是最小的值。(从大到小)
所以,在降序排序的结果集中,NULL 值会排在最前。
实战
CREATE TABLE example (id INT,value INT);
INSERT INTO example (id, value) VALUES (1, 10), (2, NULL), (3, 5), (4, NULL);
升序排序 (ASC) ↑
SELECT * FROM example ORDER BY value ASC;
id | value
1 | 10
3 | 5
2 | NULL
4 | NULL
降序排序 (DESC) ↓
SELECT * FROM example ORDER BY value DESC;
id | value
2 | NULL
4 | NULL
1 | 10
3 | 5