ORDER BY 将空值NULL排到最后

在 ORDER BY 的时候,默认将NULL排在最前面,我们要将他们排到后面去。

ORDER BY col IS NULL, col DESC

或者加一个为空的判断,就能主动控制往前排还是往后排。(IFNULL参数1为空返回参数2)

ORDER BY IFNULL(col, 0) DESC, col DESC

或者(ISNULL参数1为空返回1,不为空返回0)

ORDER BY ISNULL(col) ASC, col DESC

或者(IF参数1为真返回参数2,为假返回参数3)

ORDER BY IF(ISNULL(col), 0, 1) DESC, col

效率比较

IFNULL() > IS NULL > ISNULL()
此条目发表在SQL, 数据库分类目录,贴了, 标签。将固定链接加入收藏夹。