簡體   English   中英

mysql 列值中(NULL)和空之間的區別

[英]Difference between (NULL) and empty in mysql column values

我在一家公司工作,我們在后端使用 Spring -Hibernate 和 mysql 數據庫。

有一個表tc_wallet
在這個表中,我有一列tips_type ,它有值

  1. 收款,應付
  2. '' (空)
  3. NULL --> 沒有值被初始化

現在,當我發起查詢時:

SELECT * 
FROM `tc_wallet` 
WHERE 
    login_id = 'gaurav.wakharkar' 
    AND `delete_flag` = 'F' 
    AND `tips_type` != 'Collection' 

我得到的結果列值為 '' (空)。

Login_id            tips_type   
gaurav.wakharkar                 
gaurav.wakharkar         
gaurav.wakharkar   

但即使 (NULL) is != 'Collection' 也應該滿足上述條件。
所以在我看來,結果應該是 .

Login_id            tips_type   
gaurav.wakharkar                 
gaurav.wakharkar         
gaurav.wakharkar       
gaurav.wakharkar    (NULL)   
gaurav.wakharkar    (NULL)

檢查/比較值與 (NULL) 時是否存在一些問題?
它的行為是否不同?

要檢查空性,您需要使用IS NULL 使用相等運算符(或不等運算符)將NULL與其他內容進行比較總是錯誤的。

考慮:

SELECT * 
FROM `tc_wallet` 
WHERE 
    login_id = 'gaurav.wakharkar' 
    AND `delete_flag` = 'F' 
    AND (`tips_type` IS NULL OR `tips_type` != 'Collection')

將您的查詢更改為

SELECT 
  * 
FROM
  `tc_wallet` 
WHERE login_id = 'gaurav.wakharkar' 
  AND `delete_flag` = 'F' 
  AND (`tips_type` != 'Collection' or `tips_type` is null)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM