mysql列值中的(NULL)和空之间的差异
我在一家公司工作,我们在后端使用Spring-Hibernate和mysql数据库 有一张桌子tc\u钱包mysql列值中的(NULL)和空之间的差异,mysql,sql,string,where-clause,sql-null,Mysql,Sql,String,Where Clause,Sql Null,我在一家公司工作,我们在后端使用Spring-Hibernate和mysql数据库 有一张桌子tc\u钱包 在这个表中,我有一个列tips\u type,它有值 收款,应付 ”(空) NULL-->未初始化任何值 现在,当我发出一个查询时: SELECT * FROM `tc_wallet` WHERE login_id = 'gaurav.wakharkar' AND `delete_flag` = 'F' AND `tips_type` != 'Collec
在这个表中,我有一个列tips\u type,它有值
”
(空)NULL
-->未初始化任何值SELECT *
FROM `tc_wallet`
WHERE
login_id = 'gaurav.wakharkar'
AND `delete_flag` = 'F'
AND `tips_type` != 'Collection'
我得到的结果列值为“”(空)
但偶数(NULL)是!='“集合”应满足上述条件。所以我认为结果应该是
Login_id tips_type
gaurav.wakharkar
gaurav.wakharkar
gaurav.wakharkar
gaurav.wakharkar (NULL)
gaurav.wakharkar (NULL)
检查/比较(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')
也许这将有助于理解在任何搜索引擎中键入
mysql null空字符串
都会为您提供答案。您可能想检查一下:您应该在这里提到三值逻辑,以使答案完整。无论如何,+1:)
SELECT *
FROM `tc_wallet`
WHERE
login_id = 'gaurav.wakharkar'
AND `delete_flag` = 'F'
AND (`tips_type` IS NULL OR `tips_type` != 'Collection')