条件不起作用的 NULL 值

NULL values in where condition is not working

我在 MySQL 查询中遇到了一个奇怪的问题。以下查询返回 0 结果,而应该返回许多行。查询是

SELECT DISTINCT SKU, EAN, URL, CID 
  FROM tab_comp_data 
 WHERE status =''

在许多行中,STATUS 列中有 NULL 值,但 returns 我没有行。

我试过其他方法。

SELECT DISTINCT SKU, EAN, URL, CID 
  FROM tab_comp_data 
 WHERE status <>'INACT'

这也 returns 我没有行。

P.S。 STATUS 列只能是 NULL'INACT'

如果 status 的值为 null,则必须使用 is null。这与 =''

不同
select DISTINCT SKU, EAN, URL, CID from tab_comp_data WHERE status is null

null 不是一个值——它是缺少值。因此,不能使用等式 (=) 或不等式 (<>) 运算符对其求值。相反,应该使用 is 运算符明确检查它:

SELECT DISTINCT sku, ean, url, cid 
FROM   tab_comp_data 
WHERE  status IS NULL

我想查询 NULL 值,您应该使用 IS NULL 运算符。

因此,您的查询应如下所示:

SELECT DISTINCT SKU, EAN, URL, CID 
  FROM tab_comp_data
 WHERE status IS NULL

尝试使用is NULL

select DISTINCT SKU, EAN, URL, CID from tab_comp_data WHERE status is NULL
SELECT DISTINCT SKU, EAN, URL, CID 
  FROM tab_comp_data 
 WHERE status IS NULL

使用的是 null ,而不是 =''