溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL怎么判斷字符串為NULL或?yàn)榭兆址?/h1>
發(fā)布時(shí)間:2022-08-29 16:25:31 來(lái)源:億速云 閱讀:499 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下MySQL怎么判斷字符串為NULL或?yàn)榭兆址南嚓P(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

判斷字符串為NULL或者為空字符串

函數(shù)名說(shuō)明
ISNULL(expr)如果expr為null返回值1,否則返回值為0
IFNULL(expr1,expr2)如果expr1值為null返回expr2的值,否則返回expr1的值
NULLIF(expr1,expr2)如果expr1==expr2返回值為null,否則返回expr1的值;相當(dāng)于case when expr1=expr2 then null else expr1 end
COALESCE返回傳入的參數(shù)中第一個(gè)非null的值
IF(expr1,expr2,expr3)如果expr1的值為true,則返回expr2的值,否則返回expr3的值

例:

查找學(xué)生姓名不為null的學(xué)生信息

SELECT * FROM student WHERE ISNULL(stu_name) <1
SELECT * FROM student WHERE stu_name is not null

查詢學(xué)生成績(jī),若score為null則返回0

SELECT IFNULL('score',0) FROM stu_score
SELECT COALESCE('score',0) FROM stu_score
SELECT IF(IFNULL('score',null)=null,0,score) FROM stu_score
SELECT CASE WHEN score is null THEN 0 ELSE score END AS score FROM stu_score

MySQL中NULL和空字符串區(qū)別

相信很多用了MySQL很久的人,對(duì)這兩個(gè)字段屬性的概念還不是很清楚

一般會(huì)有以下疑問(wèn)

  • 1.字段類型是NOT NULL,為什么可以插入空值?

  • 2.NOT NULL的效率比NULL高?

  • 3.判斷字段不為空的時(shí),到底要 select * from table where column <>  還是要用 select * from table wherecolumn is not null 呢?

帶著上面幾個(gè)疑問(wèn),我們來(lái)深入研究一下NULL 和 NOT NULL 到底有什么不一樣。

首先,我們要搞清楚“空字符串” 和 “NULL” 的概念:

  • 空值是不占用空間的。

  • MySQL中的NULL是占用空間的

打個(gè)比方來(lái)說(shuō),你有一個(gè)杯子,空值代表杯子是真空的,NULL代表杯子中裝滿了空氣,雖然杯子看起來(lái)都是空的,但是區(qū)別是很大的。

注意事項(xiàng)

在進(jìn)行count()統(tǒng)計(jì)某列的記錄數(shù)的時(shí)候,如果采用的NULL值,系統(tǒng)會(huì)自動(dòng)忽略掉,但是空值是會(huì)進(jìn)行統(tǒng)計(jì)到其中的。

判斷NULL 用IS NULL 或者 IS NOT NULL, SQL語(yǔ)句函數(shù)中可以使用ifnull()函數(shù)來(lái)進(jìn)行處理,判斷空字符用=''或者 <>''來(lái)進(jìn)行處理

對(duì)于MySQL特殊的注意事項(xiàng),對(duì)于timestamp數(shù)據(jù)類型,如果往這個(gè)數(shù)據(jù)類型插入的列插入NULL值,則出現(xiàn)的值是當(dāng)前系統(tǒng)時(shí)間。插入空值,則會(huì)出現(xiàn) 0000-00-00 00:00:00

對(duì)于空值的判斷到底是使用is null 還是='' 要根據(jù)實(shí)際情況來(lái)進(jìn)行區(qū)分。

以上就是“MySQL怎么判斷字符串為NULL或?yàn)榭兆址边@篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI