0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SQLのNOT LIKE演算子はNULL値のカラムには適用されない

Posted at

SQLにおけるLIKE演算子は、文字列の一部に一致するかどうかを確認する際に使用されます。その中には、否定の条件を満たすNOT LIKE演算子もあります。しかし、注意すべき点として、NULL値のカラムに対してはNOT LIKE演算子が適用されません。

このことに気付かずバグを作ってしまったので備忘録を残します。

なぜ適用されないのか

SQLでは、NULLは値が存在しないことを表します。つまり、NULL値のカラムには実際には何も格納されておらず、データが欠損している状態です。そのため、NULL値のカラムに対しては、通常の比較演算子やパターンマッチング演算子が適用されないのです。

特に、NOT LIKE演算子は、あるパターンに一致しない値を取得する際に使用されます。しかし、NULL値のカラムに対しては、パターンが存在しないため、結果が得られず、出力されません。

例えば、以下のようなSQLクエリがあるとします。

SELECT * FROM users WHERE name NOT LIKE '%John%';

上記のクエリの場合、以下のデータのみ出力されます。

ichirou -> 出力される
zirou -> 出力される
John kenedy -> 出力されない
John -> 出力されない
NULL -> 出力されない

NULL値を含むカラムに対しては、IS NULL演算子やIS NOT NULL演算子を使用するなど、適切なNULL値の扱いを考慮したクエリを組み立てる必要があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?