MySQL では、標準の比較演算子 (=) を使用して Null 値を含む行を取得するのが難しい場合があります。この異常は、SQL の null 値の固有の性質に起因します。
これを例で説明してみましょう:
SELECT pid FROM planets WHERE userid = NULL
このクエリuserid 列が NULL 値を持つ行を返すことが期待されます。ただし、多くの場合、(phpMyAdmin で確認したように) テーブルにデータが存在しているにもかかわらず、空のセットが返されます。
この問題は、 SQL は他の値とは異なります。 Codd の 12 のルールの 1 つによると、null は、それ自体を含め、他の値と等しくなりません。したがって、= 演算子を使用して列を NULL と比較すると、常に false が返されます。
NULL 値を持つ行を正常に取得するには、IS NULL 演算子を使用する必要があります。 :
SELECT pid FROM planets WHERE userid IS NULL
IS NULL を使用すると、= を使用して列を NULL と比較するのではなく、列が本当に null であるかどうかを検査します。演算子。
ただし、テーブル構造やエンジンの変更に頼る前に、他のオプションをすべて検討することが重要です。
以上がMySQL で NULL 値を含む行を効果的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。