在MySQL中空值查詢

2021-10-06 22:52:59 字數 1707 閱讀 1335

空字串表示的是該列為空,一般查詢這種會使用到 = 』 』 或者 !=』 』

== 注意( = 』 』 和 != 』 』 都查不出值null的資料的 ) ==

首先我們要注意一點的就是null不是任何的資料型別,所以null就不是空的字串,當我們可能在平時 非空查詢中如果使用 !=』 』 是查詢不出來某個字段值為null的這一條資料的.null值得可以這麼查詢 ,但是

select

*from

user

where *** is

null

select

*from

user

where *** is

notnull

is null的查詢結果如下:(只能查出結果為null的資料)

is not null 查詢結果如下(查出來的都是結果不為null的資料, 空字串 』 』 的也可以查出來)

那麼問題來了,當我們既想查為空字串的又想查null的時候怎麼辦那,別著急,咱們接著往下看

ifnull(expr1,expr2) 就能夠很好的處理當這個問題了,該函式的用法是 如果expr1 這個欄位的值為null時,給其賦值為expr2

select

*from

user

where ifnull(***,'')

!='man'

select

*from

user

where ifnull(***,'')

<>

'man'

select

*from

user

where *** !=

'man'

or *** is

null

在ifnull之後使用 != 和 <> 或者 多條件查詢都可以實現想要的效果,但是多條件查詢的效率會比前兩個慢一點,所以在資料量大的時候還是建議直接使用前兩種

有該執行效果可以看出,null的是沒有長度的, 』 』 空字串的長度為0

Mysql中空字元和空值

mysql中空字元和空值的區別,一直都知道mysql中空字串 和空值 null 之間有區別,但是沒好好研究過。直到專案上,這兩個概念被我搞混了之後才想起來研究一下。根據網上的說法,空字串 是不占用空間,而空值 null 是占用空間。這裡我不太明白,因為我的理解是,字串都會有乙個結束符,這個結束符不會...

Access中空值處理

很久沒有弄asp了,前幾天朋友請我改乙個程式,發現access裡sum出來的值是沒有辦法判斷的。如select sum price from sy product where name like x 這樣的語句執行後如果沒有找到類似的記錄,就會返回乙個空值,前台用null判斷根本就判斷不出來。為些找...

MySQL和Oracle中空值的顯示差異

最近在處理有關空值的問題時,突然發現mysql和oracle中的顯示有些不同。以下的環境全是在字元介面的sql提示符下獲得的,不保證其它情況下也如此。oracle的 sql select userinfo from tbl where user is null and rownum 1 sql se...