婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > Mysql實(shí)現(xiàn)null值排在最前/最后的方法示例

Mysql實(shí)現(xiàn)null值排在最前/最后的方法示例

熱門標(biāo)簽:溫州瑞安400電話怎么申請(qǐng) 電銷機(jī)器人各個(gè)細(xì)節(jié)介紹 昆明電信400電話辦理 百度地圖標(biāo)注后不顯示 俄國地圖標(biāo)注app 淄博400電話申請(qǐng) 南昌高頻外呼系統(tǒng)哪家公司做的好 電銷機(jī)器人 行業(yè) 電話機(jī)器人市場(chǎng)趨勢(shì)

前言

我們已經(jīng)知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句來讀取數(shù)據(jù)表中的數(shù)據(jù),但是當(dāng)提供的查詢條件字段為 NULL 時(shí),該命令可能就無法正常工作。

為了處理這種情況,MySQL提供了三大運(yùn)算符:

  • IS NULL: 當(dāng)列的值是 NULL,此運(yùn)算符返回 true。
  • IS NOT NULL: 當(dāng)列的值不為 NULL, 運(yùn)算符返回 true。
  • =>: 比較操作符(不同于=運(yùn)算符),當(dāng)比較的的兩個(gè)值為 NULL 時(shí)返回 true。

關(guān)于 NULL 的條件比較運(yùn)算是比較特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。

在 MySQL 中,NULL 值與任何其它值的比較(即使是 NULL)永遠(yuǎn)返回 false,即 NULL = NULL 返回false 。

MySQL 中處理 NULL 使用 IS NULL 和 IS NOT NULL 運(yùn)算符。

最近在做項(xiàng)目遷移,Oracle版本的遷到Mysql版本,遇到有些oracle的函數(shù),mysql并沒有,所以就只好想自定義函數(shù)或者找到替換函數(shù)的方法進(jìn)行改造。

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的話,mysql并沒有提供類似函數(shù),所以要怎么實(shí)現(xiàn)?

下面給出解決方法:

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é)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • 你知道m(xù)ysql中空值和null值的區(qū)別嗎
  • 解決mysql使用not in 包含null值的問題
  • MySQL Innodb 存儲(chǔ)結(jié)構(gòu) 和 存儲(chǔ)Null值 用法詳解
  • mysql字符串拼接并設(shè)置null值的實(shí)例方法
  • MySQL中對(duì)于NULL值的理解和使用教程
  • 詳解MySQL中的NULL值
  • mysql中將null值轉(zhuǎn)換為0的語句
  • MySQL中關(guān)于null值的一個(gè)小問題

標(biāo)簽:甘南 葫蘆島 洛陽 嘉峪關(guān) ???/a> 吐魯番 拉薩 安徽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql實(shí)現(xiàn)null值排在最前/最后的方法示例》,本文關(guān)鍵詞  Mysql,實(shí)現(xiàn),null,值,排在,最前,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql實(shí)現(xiàn)null值排在最前/最后的方法示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Mysql實(shí)現(xiàn)null值排在最前/最后的方法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 赤峰市| 馆陶县| 垣曲县| 资溪县| 黑山县| 诸城市| 青岛市| 辉县市| 玉林市| 庐江县| 沐川县| 金平| 巴东县| 胶州市| 馆陶县| 肥东县| 清河县| 来宾市| 临漳县| 板桥市| 靖宇县| 金寨县| 德阳市| 汶川县| 新竹市| 景泰县| 城固县| 澎湖县| 育儿| 文昌市| 武宁县| 蕉岭县| 新丰县| 松原市| 安康市| 山丹县| 平凉市| 西乌| 青田县| 盖州市| 东阿县|