最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中order?by排序時數(shù)據(jù)存在null則排序在最前面的方法

 更新時間:2024年06月28日 09:27:57   作者:李仙桎  
order by排序是最常用的功能,但是排序有時會遇到數(shù)據(jù)為空null的情況,這樣排序就會亂了,這篇文章主要給大家介紹了關(guān)于MySQL中order?by排序時數(shù)據(jù)存在null則排序在最前面的相關(guān)資料,需要的朋友可以參考下

前言

order by排序是最常用的功能,但是排序有時會遇到數(shù)據(jù)為空null的情況,這樣排序就會亂了,這里以MySQL為例,記錄我遇到的問題和解決思路。

sql 排序為 null 值問題:

排序時我們用 receive_date(一個統(tǒng)計的時間,里面有較多的null) 排序,那么在倒序時因為 receive_date 的值 有null的 所以會排在最前面,有值的排在后面。

order by managerapply.receive_date desc, mi.item_code

這樣order by時,為null的數(shù)據(jù)就會排在最前邊。

解決辦法:

法一:加負(fù)號

最優(yōu)辦法:利用MySQL中的一個小技巧,在字段前面加上一個負(fù)號,也就是減號,ASC改成DESC ,DESC改成ASC

order by -managerapply.receive_date asc, mi.item_code

好家伙,忘記時間加負(fù)號那是啥?所以該方法不可以取,針對字符類或者數(shù)值類的可以吧。如age?

法二:排序字段加 is null

我們可以在排序添加加上 is null 這個在加排序條件 空值就會排在后面,其他正常排序

order by managerapply.receive_date is null, managerapply.receive_date desc, mi.item_code

法三:新增一列排序字段的null值映射

如:重新給age生成一列,比如receive_datenull,利用is null操作符,把NULL值的行變成1,非NULL值的行變成0,先對該字段排序,再對age排序(這種方法第二種方法的解讀,明白is null的用法和原理?。。。?/p>

oracle做數(shù)據(jù)排序的時候,有時候可以用nulls first或者nulls last將null值排在最前或者最后。

  • oracle方法:
# null值排在最前
select * from A order by a desc null first

# null值排在最后
select * from A order by a desc null last
  • mysql方法:
# null值排在最后,用Mysql的IF和ISNULL函數(shù)。如果為空返回1,否返回0
select * from A order by IF(ISNULL(a),1,0),a desc

# null值排在最前,用Mysql的IF和ISNULL函數(shù)。如果為空返回1,否返回0
select * from A order by IF(ISNULL(a),0,1),a desc
  • 如果mybatis里需要oracle和Mysql版本的,或者可以從后臺傳個數(shù)據(jù)表版本標(biāo)識dbType,或者直接用mybatis的_databaseId方法。
	<if test="dbType=='oracle'">
		order by c.create_date desc nulls last
	</if>
   	<if test="dbType=='mysql'">
   		order by IF(ISNULL(c.create_date),1,0), c.create_date desc
   	</if>

總結(jié) 

到此這篇關(guān)于MySQL中order by排序時數(shù)據(jù)存在null則排序在最前面的方法的文章就介紹到這了,更多相關(guān)MySQL order by排序null排最前面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • MySQL日期加減函數(shù)詳解

    MySQL日期加減函數(shù)詳解

    在本篇文章里小編給大家分享的是關(guān)于MySQL日期加減函數(shù)用法以及實例,需要的朋友們可以參考下。
    2020-05-05
  • MySQL索引失效全解析與優(yōu)化指南

    MySQL索引失效全解析與優(yōu)化指南

    在關(guān)系型數(shù)據(jù)庫里,索引是加速查詢的核心武器,索引失效不是索引壞了,而是優(yōu)化器沒有或不能利用索引的有序性來快速定位數(shù)據(jù),本文介紹了索引失效的底層原理與常見場景,掌握對應(yīng)的修復(fù)方法,能顯著提升 SQL性能,需要的朋友可以參考下
    2025-08-08
  • Linux系統(tǒng)下mysqlcheck修復(fù)數(shù)據(jù)庫命令(詳解)

    Linux系統(tǒng)下mysqlcheck修復(fù)數(shù)據(jù)庫命令(詳解)

    下面小編就為大家?guī)硪黄狶inux系統(tǒng)下mysqlcheck修復(fù)數(shù)據(jù)庫命令(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-12-12
  • MySQL多表查詢的具體實例

    MySQL多表查詢的具體實例

    這篇文章主要介紹了MySQL多表查詢的具體實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Linux下安裝MySQL教程

    Linux下安裝MySQL教程

    上一篇文章詳細(xì)介紹windows下MySQL安裝教程,這篇就從最基本的安裝MySQL-Linux環(huán)境開始,文章為繞MySQL安裝展開內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • MySQL中使用SQL語句查看某個表的編碼方法

    MySQL中使用SQL語句查看某個表的編碼方法

    下面小編就為大家?guī)硪黄狹ySQL中使用SQL語句查看某個表的編碼方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • MySQL之Innodb_buffer_pool_size設(shè)置方式

    MySQL之Innodb_buffer_pool_size設(shè)置方式

    這篇文章主要介紹了MySQL之Innodb_buffer_pool_size設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Mysql中常用的幾種join連接方式總結(jié)

    Mysql中常用的幾種join連接方式總結(jié)

    join語句是面試中經(jīng)常會讓你現(xiàn)場寫出來的語句,下面這篇文章主要給大家介紹了關(guān)于Mysql中常用的幾種join連接方式,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • MySQL系列之六 用戶與授權(quán)

    MySQL系列之六 用戶與授權(quán)

    做為Mysql數(shù)據(jù)庫管理員管理用戶賬戶,是一件很重要的事,指出哪個用戶可以連接服務(wù)器,從哪里連接,連接后能做什么,這篇文章主要介紹了MySQL用戶與授權(quán)的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • MySQL Antelope和Barracuda的區(qū)別分析

    MySQL Antelope和Barracuda的區(qū)別分析

    這篇文章主要介紹了MySQL Antelope和Barracuda的區(qū)別分析,Antelope和Barracude都是一種文件格式,需要的朋友可以參考下
    2014-07-07

最新評論

罗源县| 治县。| 双鸭山市| 太谷县| 阳江市| 密山市| 聂拉木县| 镇平县| 思茅市| 中西区| 峨山| 抚远县| 文成县| 增城市| 井研县| 茶陵县| 抚远县| 海丰县| 乃东县| 合水县| 定远县| 阳高县| 芒康县| 浏阳市| 伽师县| 宁晋县| 库尔勒市| 凤山市| 九寨沟县| 谢通门县| 北宁市| 陇川县| 凌源市| 石渠县| 松潘县| 通辽市| 辉县市| 同仁县| 阜新市| 孟连| 金塔县|