MySQL: NULL 値を持つ行の選択
特定の列に NULL 値が含まれる行を取得しようとすると、ユーザーは空の列に遭遇します。結果セット。この不一致は、phpMyAdmin で表示したテーブルに NULL 値が表示されているにもかかわらず発生します。
問題のクエリは次のようになります。
SELECT pid FROM planets WHERE userid = NULL
「NULL」または「」のチェックなど、さまざまな提案を検討した結果null" 文字列を検索して空のスペースを検索しても、ユーザーは目的の行を取得できないままになります。 MyISAM ストレージ エンジンが一因である可能性があると考え、ユーザーはテーブルを InnoDB に変換します。しかし、問題は解決しません。
問題の解決
解決策は、SQL NULL 値の特殊な性質を理解することにあります。従来の値とは異なり、NULL は等号 (=) を使用して同等とみなすことができません。 NULL 値を含む行を正しく取得するには、次の構文を使用する必要があります:
WHERE field IS NULL
この区別は、NULL が未知または未定義の値を表し、それが本当に等しいかどうかを判断できないという事実に由来しています。それ自体も含めて何でも。この原則は、Codd のルール 3 に明記されています。
クエリを次のように調整することで、
SELECT pid FROM planets WHERE userid IS NULL
ユーザーは NULL 値を含む行を正常に取得できるようになります。
以上がMySQL で NULL 値を含む行を正しく選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。