亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2019年02月15日 10:17:13   作者:smileNicky  
這篇文章主要給大家介紹了關于Mysql實現(xiàn)null值排在最前/最后的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

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

為了處理這種情況,MySQL提供了三大運算符:

  • IS NULL: 當列的值是 NULL,此運算符返回 true。
  • IS NOT NULL: 當列的值不為 NULL, 運算符返回 true。
  • <=>: 比較操作符(不同于=運算符),當比較的的兩個值為 NULL 時返回 true。

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

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

MySQL 中處理 NULL 使用 IS NULL 和 IS NOT NULL 運算符。

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

oracle做數據排序的時候,有時候可以用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并沒有提供類似函數,所以要怎么實現(xiàn)?

下面給出解決方法:

null值排在最后,用Mysql的IF和ISNULL函數。如果為空返回1,否返回0

select * from A order by IF(ISNULL(a),1,0),a desc

null值排在最前,用Mysql的IF和ISNULL函數。如果為空返回1,否返回0

select * from A order by IF(ISNULL(a),0,1),a desc

如果mybatis里需要oracle和Mysql版本的,或者可以從后臺傳個數據表版本標識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>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • Mysql處理Duplicate entry ‘6‘ for key ‘PRIMARY‘問題及解決

    Mysql處理Duplicate entry ‘6‘ for key 

    這篇文章主要介紹了Mysql處理Duplicate entry ‘6‘ for key ‘PRIMARY‘問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • MySQL嵌套事務所遇到的問題

    MySQL嵌套事務所遇到的問題

    這篇文章主要介紹了MySQL嵌套事務所遇到的問題的相關資料,需要的朋友可以參考下
    2017-02-02
  • Mysql中 unique列插入重復值該怎么解決呢

    Mysql中 unique列插入重復值該怎么解決呢

    本文給大家介紹mysql中unique列插入重復值的解決方案,主要基于mysql平臺,通過這些,可以做到一些新的功能和應用。特此把本文本文分享給廣大開發(fā)人員
    2015-11-11
  • Mac安裝 mysql 數據庫總結

    Mac安裝 mysql 數據庫總結

    本文給大家分享的是如何在Mac下安裝mysql數據庫的方法,總結的很全面,有需要的小伙伴可以參考下
    2016-04-04
  • MySQL8.0登錄時出現(xiàn)Access?denied?for?user?‘root‘@‘localhost‘?(using?password:?YES)?拒絕訪問的完美解決

    MySQL8.0登錄時出現(xiàn)Access?denied?for?user?‘root‘@‘localhost‘?

    這篇文章主要給大家介紹了解決MySQL8.0登錄時出現(xiàn)Access?denied?for?user?‘root‘@‘localhost‘?(using?password:?YES)?拒絕訪問的問題,文中有詳細的解決方法,需要的朋友可以參考下
    2023-09-09
  • MySQL內部函數的超詳細介紹

    MySQL內部函數的超詳細介紹

    眾所周知MySQL有很多內置的函數,下面這篇文章主要給大家介紹了關于MySQL內部函數的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-08-08
  • 基于ubuntu中使用mysql實現(xiàn)opensips用戶認證的解決方法

    基于ubuntu中使用mysql實現(xiàn)opensips用戶認證的解決方法

    本篇文章小編為大家介紹,基于ubuntu中使用mysql實現(xiàn)opensips用戶認證的解決方法。需要的朋友參考下
    2013-04-04
  • mysql 數據庫備份的多種實現(xiàn)方式總結

    mysql 數據庫備份的多種實現(xiàn)方式總結

    這篇文章主要介紹了mysql 數據庫備份的多種實現(xiàn)方式,總結分析了MySQL數據庫備份的常見語句、使用方法及操作注意事項,需要的朋友可以參考下
    2020-02-02
  • 使用mysql查詢當天、近一周、近一個月及近一年的數據

    使用mysql查詢當天、近一周、近一個月及近一年的數據

    不論你是一名數據庫管理員或SQL開發(fā)者,還是一名簡單的MySQL用戶,掌握查詢特定日期數據的方法都是必不可少的,下面這篇文章主要給大家介紹了關于如何使用mysql查詢當天、近一周、近一個月及近一年的數據,需要的朋友可以參考下
    2023-06-06
  • 親手教你SQLyog12.08安裝詳細教程

    親手教你SQLyog12.08安裝詳細教程

    SQLyog?是一個快速而簡潔的圖形化管理MYSQL數據庫的工具,它能夠在任何地點有效地管理你的數據庫,這篇文章主要介紹了SQLyog12.08安裝詳細教程,需要的朋友可以參考下
    2023-04-04

最新評論