mysql 列值中的 (NULL) 和空值之间的区别
Difference between (NULL) and empty in mysql column values
我在一家公司工作,我们在后端使用 Spring -Hibernate 和 mysql 数据库。
有个tabletc_wallet
在此 table 中,我有一列 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)
checking/comparing 值为 (NULL) 时是否存在问题?
它的行为是否不同?
将您的查询更改为
SELECT
*
FROM
`tc_wallet`
WHERE login_id = 'gaurav.wakharkar'
AND `delete_flag` = 'F'
AND (`tips_type` != 'Collection' or `tips_type` is 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')
我在一家公司工作,我们在后端使用 Spring -Hibernate 和 mysql 数据库。
有个tabletc_wallet
在此 table 中,我有一列 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)
checking/comparing 值为 (NULL) 时是否存在问题?
它的行为是否不同?
将您的查询更改为
SELECT
*
FROM
`tc_wallet`
WHERE login_id = 'gaurav.wakharkar'
AND `delete_flag` = 'F'
AND (`tips_type` != 'Collection' or `tips_type` is 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')