2013-05-06 23 views
10

特定のフィールドが空でない行だけを表示するようにクエリを制限したいと思います。 this thread誰かが同じ質問をしたところで、IS NOT NULLを使うように言われました。私はそれを試みましたが、フィールドが空の行をまだ取得しています。SQL/MySQL NOT NULLとNOT EMPTY

これを行う正しい方法は何ですか? NullはSQL/MySQLでEmptyと同じですか?

私のクエリ、もし興味があるならです: SELECT * FROM records WHERE (party_zip='49080' OR party_zip='49078' OR party_zip='49284') AND partyfn IS NOT NULL

+0

いくつかのサンプルデータを投稿することができます –

+0

残念ながら、残念ながら私のテーブルから実際のデータには機密情報が含まれているため、投稿できません。テストしたい場合は、2行だけで簡単に書き込むことができます。 – cream

+3

この質問をご覧ください:http://stackoverflow.com/questions/1869264/mysql-select-where-column-not-empty – joakaune

答えて

7

NULL値を比較すると、ほとんどの場合、結果はNULLになり、そのためのと同じ結果をぐるぐるを使用してそれを得ました0(MySQLのFALSE値)はWHEREHAVINGです。

この例では、IS NOT NULLを含める必要はありません。単にparty_zip IN ('49080', '49078', '49284')を使用してください。 NULLは、49080,49078,49284または他の数字または文字列にすることはできません。

あなたが考える必要があるのは、空の値をチェックするときです。値がNULLの場合、!party_zipTRUE/1を返しません。代わりにOR columns IS NULLまたは!COALESCE(party_zip, 0)

22

私はAND (partyfn IS NOT NULL AND partyfn != '')