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