Mysql 不平等<&燃气轮机;查询排除空值
我有一些SQL查询的问题,我无法理解Mysql 不平等<&燃气轮机;查询排除空值,mysql,sql,null,Mysql,Sql,Null,我有一些SQL查询的问题,我无法理解 SELECT * FROM MasterList WHERE Requested <> "Yes"; 从主列表中选择*请求“是”; 如果在我的表上运行上述查询,将返回60条记录。但是应该有接近300个。我认为问题在于,一些记录在请求的字段中是空白的,而另一些是空的。但我原以为空值仍然不等于“是”,不是吗?如果没有,是否有一种不必返回并“清空”所有空字段的方法?这是因为null“Yes”表达式的计算结果为null,因此您应该添加一个单独的is
SELECT * FROM MasterList WHERE Requested <> "Yes";
从主列表中选择*请求“是”;
如果在我的表上运行上述查询,将返回60条记录。但是应该有接近300个。我认为问题在于,一些记录在请求的字段中是空白的,而另一些是空的。但我原以为空值仍然不等于“是”,不是吗?如果没有,是否有一种不必返回并“清空”所有空字段的方法?这是因为
null“Yes”
表达式的计算结果为null
,因此您应该添加一个单独的is null
检查,以在结果集中包含满足此条件的记录:
select * from MasterList where Requested <> "Yes" or Requested is null
从主列表中选择*,其中请求的“是”或请求为空
注意:
null
与任何东西的比较,即使是null
本身,总是返回null
比较中不计算null值,如果希望返回null
值,则需要执行以下查询:
SELECT * FROM MasterList WHERE Requested <> "Yes" OR Requested IS NULL;
从主列表中选择*,其中请求的“是”或请求为空;
空安全相等。此运算符执行与=运算符类似的相等比较,但如果两个操作数都为NULL,则返回1而不是NULL;如果一个操作数为NULL,则返回0而不是NULL
mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
-> 1, 1, 0
mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
-> 1, NULL, NULL
mysql>选择11,空,1空;
-> 1, 1, 0
mysql>选择1=1,NULL=NULL,1=NULL;
->1,空,空
在您的情况下,请使用:
SELECT * FROM MasterList WHERE not Requested <=> "Yes"
从未请求“是”的主列表中选择*
谢谢。我可以以一种解释NULL的方式构建查询。