MySQL判斷空值的三種方法
在開始前我們先來做一個思考,如下圖:
根據(jù)上圖箭頭所指的位置,我們該如何分別去判斷空?表從上到下依次為:t_user,t_user_1,t_user_2,下面分三種情況去聊聊。
1. is null
命令行查t_user表
從命令行可以看出第五條數(shù)據(jù)存在空值,那么我們執(zhí)行如下語句試試:
select * from t_user where id='NULL'
運行結(jié)果:
可以看到并沒有查出數(shù)據(jù),這里存在一個可視化的問題,就是在命令行顯示的空值和在可視化工具顯示會有偏差,我們轉(zhuǎn)去可視化工具查看:
這里就容易出現(xiàn)問題了,為了更清楚看到數(shù)據(jù),我們可以導(dǎo)出表數(shù)據(jù)(字段id的數(shù)據(jù)類型tinytext):
可以看到箭頭指向的值是NULL,并不是'NULL',這就是空值和字符的區(qū)別,所以我們上面執(zhí)行的語句顯然查不出。
SQL中有判斷空值的關(guān)鍵字,那就是is null,我們執(zhí)行如下語句:
select * from t_user where id is null
執(zhí)行結(jié)果:
2. =''
先查下表t_user_1:
可以看到最后一行是空白的,我們再導(dǎo)出sql看下語句:
也是空的字符,由此可以用=''作為關(guān)鍵字來查詢
select * from t_user_1 where id =''
執(zhí)行結(jié)果:
3. ='NULL'
先查下表t_user_2:
查出來的結(jié)果和第一點一致,那也是一樣的語句嗎?前面提到過命令行和可視化工具會有偏差,那么我們導(dǎo)出語句對比一下:
可以看出上面的是空值,而下面的是字符NULL,不要混淆兩者。對于字符的NULL,可以用='NULL'或='null'關(guān)鍵字查詢:
select * from t_user_2 where id='NULL'
或
select * from t_user_2 where id='null'
到此這篇關(guān)于MySQL判斷空值的三種方法的文章就介紹到這了,更多相關(guān)MySQL判斷空值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
超詳細(xì)mysql left join,right join,inner join用法分析
比較詳細(xì)的mysql的幾種連接功能分析,只要你看完就能學(xué)會的好東西2008-08-08分享MYSQL插入數(shù)據(jù)時忽略重復(fù)數(shù)據(jù)的方法
當(dāng)程序中insert時,已存在的數(shù)據(jù)不插入,不存在的數(shù)據(jù)insert。在網(wǎng)上搜了下,可以使用存儲過程或者是用NOT EXISTS 來判斷是否存在2013-09-09MySQL使用show status查看MySQL服務(wù)器狀態(tài)信息
這篇文章主要介紹了MySQL使用show status查看MySQL服務(wù)器狀態(tài)信息,需要的朋友可以參考下2017-01-01macOS Sierra安裝Apache2.4+PHP7.0+MySQL5.7.16
這篇文章主要為大家詳細(xì)介紹了macOS Sierra安裝Apache2.4+PHP7.0+MySQL5.7.16的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01