[英]Difference between (NULL) and empty in mysql column values
我在一家公司工作,我們在后端使用 Spring -Hibernate 和 mysql 數據庫。
有一個表tc_wallet
在這個表中,我有一列tips_type ,它有值
''
(空)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.