NOT IN子句在检查条件时省略了值NULL值。NOT IN子句和NULL值
INPUT
ID NAME
1 A
2 <null>
3 C
SELECT... FROM...
WHERE NAME NOT IN ('C')
仅返回ID值1,我既需要1 & 2.
能这样做吗?
NOT IN子句在检查条件时省略了值NULL值。NOT IN子句和NULL值
INPUT
ID NAME
1 A
2 <null>
3 C
SELECT... FROM...
WHERE NAME NOT IN ('C')
仅返回ID值1,我既需要1 & 2.
能这样做吗?
WHERE NAME NOT IN ('C') OR NAME IS NULL
SELECT...
FROM...
WHERE NAME NOT IN ('C')
OR NAME IS NULL
SELECT...
FROM...
WHERE ISNULL(NAME, '') NOT IN ('C')
正确的SQL将
SELECT... FROM...
WHERE NAME NOT IN ('C')
or NAME is NULL
这是因为与NULL
任何比较也产生NULL
(即不truthy也不falsy)。 (感谢@Jack)
参见:
MySQL: Why is NULL ignored in MySQL?
Working of Null Values
要么你检查NULL值
select *
from not_in
where name not in ('C') or name is null;
,或者你可以在任何其它字符与聚结转换NULL值。我在下面的示例中使用''。
select *
from not_in
where coalesce(name, ' ') not in ('C');
只需添加一个'或名称null'它的行结束 –
http://stackoverflow.com/questions/12966873/mysql-why-is-null-ignored-in-mysql – asifsid88
基本上你想要显示表格数据,除了名称是C ...? – Vishal