您好,登錄后才能下訂單哦!
今天小編給大家分享一下MySQL怎么判斷字符串為NULL或為空字符串的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
函數名 | 說明 |
---|---|
ISNULL(expr) | 如果expr為null返回值1,否則返回值為0 |
IFNULL(expr1,expr2) | 如果expr1值為null返回expr2的值,否則返回expr1的值 |
NULLIF(expr1,expr2) | 如果expr1==expr2返回值為null,否則返回expr1的值;相當于case when expr1=expr2 then null else expr1 end |
COALESCE | 返回傳入的參數中第一個非null的值 |
IF(expr1,expr2,expr3) | 如果expr1的值為true,則返回expr2的值,否則返回expr3的值 |
例:
查找學生姓名不為null的學生信息
SELECT * FROM student WHERE ISNULL(stu_name) <1 SELECT * FROM student WHERE stu_name is not null
查詢學生成績,若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很久的人,對這兩個字段屬性的概念還不是很清楚
1.字段類型是NOT NULL,為什么可以插入空值?
2.NOT NULL的效率比NULL高?
3.判斷字段不為空的時,到底要 select * from table where column <> 還是要用 select * from table wherecolumn is not null 呢?
帶著上面幾個疑問,我們來深入研究一下NULL 和 NOT NULL 到底有什么不一樣。
首先,我們要搞清楚“空字符串” 和 “NULL” 的概念:
空值是不占用空間的。
MySQL中的NULL是占用空間的
打個比方來說,你有一個杯子,空值代表杯子是真空的,NULL代表杯子中裝滿了空氣,雖然杯子看起來都是空的,但是區別是很大的。
在進行count()統計某列的記錄數的時候,如果采用的NULL值,系統會自動忽略掉,但是空值是會進行統計到其中的。
判斷NULL 用IS NULL 或者 IS NOT NULL, SQL語句函數中可以使用ifnull()函數來進行處理,判斷空字符用=''或者 <>''來進行處理
對于MySQL特殊的注意事項,對于timestamp數據類型,如果往這個數據類型插入的列插入NULL值,則出現的值是當前系統時間。插入空值,則會出現 0000-00-00 00:00:00
對于空值的判斷到底是使用is null 還是='' 要根據實際情況來進行區分。
以上就是“MySQL怎么判斷字符串為NULL或為空字符串”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。