一.問題描述
MySQL中使用order by對字段進行排序的時候,如果是降序排序,那字段值為null的記錄會排在最后,但是如果是升序排序,那字段為null的記錄會排在最前面。
目前碰到一個需求,就是根據字段進行升序排序的時候,字段值為null也需要放在最后,這邊可以通過下面方法進行處理;
二.問題處理
假設當前對 t_user 進行查詢,並通過status字段進行升序排序,t_user表中的數據如下:
處理方法一:
SELECT * FROM t_user ORDER BY -STATUS DESC
結果:
處理方法二:
SELECT * FROM t_user ORDER BY ISNULL(STATUS), STATUS ASC
結果:
處理方法三:
SELECT * FROM t_user ORDER BY STATUS IS NULL, STATUS ASC
結果: