日常的な問題 (1) - Mysql にない場合、NULL 値を含む行がフィルタされます

結論: not in を使用する場合は、フィールドに null 値があるかどうかに注意する必要があります。これを使用すると、null 値の行が除外されるためです。

  1. not in を使用すると、フィールドが null 値の行になるようにフィルターされます。

  1. in は null 値を含む行をカウントせず、null 値の影響を受けません。

理由: null 値は他の値と比較した場合に高速です

注: not in に加えて、「!=」、「not like」などでもこの問題が発生します。

例:

1. 小さな例として、データの全量を下の図に示します。

SELECT * from temp;

2. スコア=70のデータを除外したい場合は、次のように記述すると、結果でスコアがnullの行が除外されます。

SELECT * from temp where score not in (70);
まとめると、not in を使用する場合は null 値の問題に注意し、条件を追加するかフィールドが null であるか、テーブル内の null ではないフィールドに変換して not を使用するなど、多くの解決策があります。 in を使用するか、in を使用してデータをクエリし、主キーを使用します。フィルタリングは待機することもできます。

おすすめ

転載: blog.csdn.net/qq_37764320/article/details/129144523