您好,登錄后才能下訂單哦!
今天小編給大家分享一下MySQL怎么判斷字符串為NULL或?yàn)榭兆址南嚓P(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
函數(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很久的人,對(duì)這兩個(gè)字段屬性的概念還不是很清楚
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ū)別是很大的。
在進(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è)資訊頻道。
免責(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)容。