ホームページ >データベース >mysql チュートリアル >MySQL IN 演算子と Null 値: Null エラーのある行が除外されるのはなぜですか?
MySQL IN 演算子と Null 値
MySQL では、IN 演算子は、指定された値が指定された値内のいずれかの値と一致するかどうかを確認するために使用されます。リスト。ただし、NULL 値で IN 演算子を使用すると、予期しない動作が発生する可能性があります。
NULL 値が除外される理由
MySQL IN 演算子はブール値の結果 (TRUE または間違い)。 null 以外の値を null と比較すると、結果は常に FALSE になります。したがって、IN を使用して値が null を含むリスト内のどの値とも等しくないことをチェックする場合、null 値を持つすべての行が結果から除外されます。
問題の修正
結果に null 値を含めるには、次のオプションを使用できます:
Error = COALESCE(Error, '') NOT IN ('Timeout','Connection Error');
Error IS NULL OR Error NOT IN ('Timeout','Connection Error');
CASE WHEN Error IS NULL THEN 1 ELSE Error NOT IN ('Timeout','Connection Error') THEN 1 END = 1
SELECT t1.* FROM Table1 t1 LEFT JOIN ( SELECT Error FROM ErrorTable WHERE Error IN ('Timeout') ) t2 ON t1.Error = t2.Error;
結論
NULL 値で IN 演算子を使用する場合、次のことが重要です。演算子が null を特別な値として扱うことを理解するためです。結果に null 値を含めるには、上記のような追加の条件または手法を使用する必要があります。
以上がMySQL IN 演算子と Null 値: Null エラーのある行が除外されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。