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

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

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

前言

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

sql 排序?yàn)?null 值問題:

排序時(shí)我們用 receive_date(一個(gè)統(tǒng)計(jì)的時(shí)間,里面有較多的null) 排序,那么在倒序時(shí)因?yàn)?receive_date 的值 有null的 所以會(huì)排在最前面,有值的排在后面。

order by managerapply.receive_date desc, mi.item_code

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

解決辦法:

法一:加負(fù)號(hào)

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

order by -managerapply.receive_date asc, mi.item_code

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

法二:排序字段加 is null

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

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

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

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

oracle做數(shù)據(jù)排序的時(shí)候,有時(shí)候可以用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版本的,或者可以從后臺(tái)傳個(gè)數(shù)據(jù)表版本標(biāo)識(shí)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í)數(shù)據(jù)存在null則排序在最前面的方法的文章就介紹到這了,更多相關(guān)MySQL order by排序null排最前面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

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

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

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

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

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

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

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

    MySQL多表查詢的具體實(shí)例

    這篇文章主要介紹了MySQL多表查詢的具體實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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語句查看某個(gè)表的編碼方法

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

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

    MySQL之Innodb_buffer_pool_size設(shè)置方式

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

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

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

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

    做為Mysql數(shù)據(jù)庫(kù)管理員管理用戶賬戶,是一件很重要的事,指出哪個(gè)用戶可以連接服務(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

最新評(píng)論

盐城市| 斗六市| 枣强县| 武宣县| 蒙自县| 阿合奇县| 正宁县| 黑河市| 泉州市| 浙江省| 锡林郭勒盟| 巨鹿县| 大城县| 长治市| 阿鲁科尔沁旗| 潢川县| 邵武市| 响水县| 明星| 宜良县| 韶山市| 抚顺市| 隆尧县| 昭平县| 临颍县| 余姚市| 石家庄市| 班戈县| 岑溪市| 辽宁省| 亚东县| 会泽县| 东兴市| 巴彦淖尔市| 中西区| 墨脱县| 巫溪县| 平湖市| 陵水| 建平县| 周口市|