MySql排序查詢將null放在最后的解決辦法(默認會在最前,當成最小值處理)


一.問題描述

     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 

結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM