2017-09-23 25 views
0

我做一個選擇我的分貝:MySQL的其中場是不同的 - 沒有選擇空

SELECT * FROM `projects` where customer_id = 37 and project_status != 'Closed' 

我通常4個記錄:

project_name  project_status 
project A  Open 
project B  Closed 
project C  NULL 
project D  NULL 
所以我的select語句

,我通常應該看到3條記錄,A,C和D,但我只看到A.我想這是因爲如果它是空的東西,它不包括但通常我應該有NULL不同於閉合,所以它應該給我這些記錄。

我怎樣才能確保我得到他們?

謝謝。

回答

0

NULL比較幾乎總是返回NULL - 將其視爲false。你有兩個選擇:

WHERE customer_id = 37 AND (project_status <> 'Closed' OR project_status IS NULL) 

或者:

WHERE customer_id = 37 AND (NOT project_status <=> 'Closed') 

<=>NULL -safe相等運算符(描述here)。 ANSI標準版本被稱爲IS NOT DISTINCT FROM