mysql中 IS NULL 與 =''有什么區別?


 mysql中 IS NULL 與 =''有什么區別?

 原文:https://mp.weixin.qq.com/s/dHXA8B7Q6HLJbyQWJbhQfA

 

這個區別在於IS NULL表示一個字段建表時,設置的是允許為空。插入值時,沒有插入這個值。

NULL表示no known,即不知道,所以,它可以是任意值。

所以使用 =null是查不到值的,因為=不知道,還是不知道。

如果要使用,需要加上

set ANSI_NULLS off

注:這句話表示不遵從 SQL-92 標准。= null IS NULL被認為是等效的。

用IS NULL查詢,表示是:要查建表中,設置的字段可以為空,並且插入數據時,該字段未賦值的記錄。

 

 

注:建表時設name可以為空。

 

 

注:插入記錄時,name未被賦值。

 

 

注:查詢name is null的結果。

而name =’’是什么意思呢?

它的意思,是查詢賦值的,並且賦值為空格(可以是一個空格,也可以是多個空格)的記錄的條數。和null不一樣。上面student表中,第3條即為name為空格的記錄,所以用IS NULL是查不出來的。

另外,如果一條記錄name字段為null,那么用not like 也是查不出來的。看下面這條語句:

SELECT * from student WHERE id=2 and name not like '%張三%';

查詢結果為空記錄。所以,not like 只對設置name的記錄有效。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM