2014-05-16 45 views
0

我有一個簡單的表,帶有一個外鍵和一個約束,該鍵必須存在於父表中。但是,此子表中的外鍵列允許NULL。MySQL不會在子表中返回一個具有NULL外鍵的行

MySQL允許我在該列中插入一行爲NULL的行,並將其返回到SELECT * FROM the Table中。

但是如果我專門爲這樣的行查詢時,將不予退還:

SELECT * FROM bannedItems WHERE banningAppID = NULL 

這是預期的行爲?我沒有看到這種情況在MySQL文檔中記錄。

+2

'SELECT * FROM bannedItems WHERE banningAppID is NULL;' – wildplasser

+0

如果@ wildplasser的查詢不能解決這個問題,那是一個更大的問題 - 也許你的表架構或內容設置不正確 – AutomationNation

+0

我認爲就是這樣..而且下一次嘗試搜索第一.. http://stackoverflow.com/questions/18748862/mysql-select-query-when-the-column-that-has-condition-on-has-null-value –

回答

1

可能嘗試這樣的:

SELECT * FROM bannedItems WHERE banningAppID IS NULL 

SELECT * FROM bannedItems WHERE ISNULL(banningAppID) 

如果你需要不加,你會做這樣的:

SELECT * FROM bannedItems WHERE banningAppID IS NOT NULL 

SELECT * FROM bannedItems WHERE NOT ISNULL(banningAppID) 
+0

謝謝。 IS NULL工作得很好。 – Oscar

相關問題