2013-05-06 325 views
10

我想限制我的查詢,只顯示某些字段不爲空的行。我發現this thread有人提出了相同的問題,並被告知使用IS NOT NULL。我嘗試過,但我仍然得到行空的地方。SQL/MySQL NOT NULL與NOT EMPTY

這樣做的正確方法是什麼?與SQL/MySQL中的Empty是否相同?

我的查詢,如果你有興趣的是: SELECT * FROM records WHERE (party_zip='49080' OR party_zip='49078' OR party_zip='49284') AND partyfn IS NOT NULL

+0

你能張貼一些樣本數據 – 2013-05-06 07:18:38

+0

不幸的是我不能發佈我的表中的實際數據,因爲它包含敏感信息。如果你想測試,你可以很容易地寫出2行。 – cream 2013-05-06 07:20:57

+3

看看這個問題:http://stackoverflow.com/questions/1869264/mysql-select-where-column-not-empty – joakaune 2013-05-06 07:23:55

回答

7

當比較一個NULL價值得到了它,結果在大多數情況下成爲NULL和爲此富人的結果是相同的0(MySQL中的FALSE值)在WHEREHAVING之內。

在你給出的例子中,你不需要包含IS NOT NULL。相反,只需使用party_zip IN ('49080', '49078', '49284')即可。 NULL不能是49080,49078,49284或任何其他數字或字符串。

你需要考慮的是檢查空值。如果值爲NULL,則!party_zip將不返回TRUE/1。相反使用OR columns IS NULL!COALESCE(party_zip, 0)

22

我用AND (partyfn IS NOT NULL AND partyfn != '')