排序里 NULL 的位置要点
- MySQL 中 NULL 视为最小值:升序排最后,降序排最前
- 别的库用 NULLS FIRST / LAST,MySQL 不认这套语法
- 想让 NULL 永远排最前:ORDER BY 列 IS NULL DESC, 列 ASC
- 想让 NULL 永远排最后:ORDER BY 列 IS NULL ASC, 列 ASC
- IS NULL 返回 0 或 1,拿来当排序第一关键字很稳
- 前端展示顺序要和排序预期一致,别让空值乱跳
排序里 NULL 的位置示例
-- 默认:升序时 NULL 沉底
SELECT product_name, price FROM product ORDER BY price ASC;
-- 强制让缺价格的商品排在最前
SELECT product_name, price
FROM product
ORDER BY price IS NULL DESC, price ASC;
避坑提醒:用「列 IS NULL」当排序第一关键字是 MySQL 专属惯用法,比记别的库语法更通用。