expr NOT LIKE pat [ESCAPE 'escape_char']

expr NOT LIKE pat [ESCAPE 'escape_char']

これは、NOT (expr LIKE pat [ESCAPE 'escape_char']) と同様です。

注意

NULL を含むカラムとの NOT LIKE 比較を伴う Aggregate クエリは、予想外の結果を生成します。例として、次の表とデータを参考にしてください :

CREATE TABLE foo (bar VARCHAR(10));

INSERT INTO foo VALUES (NULL), (NULL);

クエリ SELECT COUNT(*) FROM foo WHERE bar LIKE '%baz%';0 を戻します。SELECT COUNT(*) FROM foo WHERE bar LIKE '%baz%';2 を戻すと思われがちです。しかし、この場合は異なります : 2 番目のクエリは 0 を戻します。これは、NULL NOT LIKE expr が、expr の値に関わりなく、常に NULL を戻すためです。NULL を伴う aggregate クエリと、NOT RLIKE または NOT REGEXP を使用する比較でも同様です。このような場合、次のように、OR ( AND ではなく ) を使用して、NOT NULL を明示的にテストする必要があります :

SELECT COUNT(*) FROM foo WHERE bar NOT LIKE '%baz%' OR bar IS NULL;