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;