条件不起作用的 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 ,而不是 =''
我在 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 ,而不是 =''