web-dev-qa-db-ja.com

SQL / MySQL NOT NULL vs NOT EMPTY

特定のフィールドが空でない行のみを表示するようにクエリを制限したいと思います。 このスレッド が見つかりました。誰かが同じ質問をし、_IS NOT NULL_を使用するように言われました。私はそれを試しましたが、フィールドが空の行をまだ取得しています。

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

あなたが興味を持っているなら、私のクエリは:SELECT * FROM records WHERE (party_Zip='49080' OR party_Zip='49078' OR party_Zip='49284' ) AND partyfn IS NOT NULL

14
cream

NULL値を比較すると、ほとんどの場合、結果はNULLになります。したがって、WHERE内の_0_(MySQLのFALSE値)と同じ結果になります。 HAVING

この例では、_IS NOT NULL_を含める必要はありません。代わりに、単にparty_Zip IN ('49080', '49078', '49284')を使用します。 NULLには49080、49078、49284、またはその他の数字や文字列は使用できません。

ただし、考える必要があるのは、空の値をチェックするときです。 _!party_Zip_は、値がTRUEの場合、NULL/_1_を返しません。代わりに_OR columns IS NULL_または!COALESCE(party_Zip, 0)を使用してください

9
Robin Castlin

AND (partyfn IS NOT NULL AND partyfn != '')を使用して取得しました

33
cream