MySQLのFIND_IN_SET()の逆(ある値が対象カラムに含まれない場合)と、NULLへの対応
を判別する関数ですが、その逆をやりたい場合があります。
その場合、下記のコードを使います。
SELECT
*
FROM
test_table
WHERE
NOT FIND_IN_SET('探す値', '対象カラム')
MySQLのFIND_IN_SET()の逆 NULL対応
対象カラムにNULLが入っている場合、FIND_IN_SET()はNULLを返すため、上のコードだとうまく動作しません。対象カラムでNULLを許可している場合は、NULL用の判定も入れる必要があります。
SELECT
*
FROM
test_table
WHERE
('対象カラム' IS NULL OR NOT FIND_IN_SET('探したい値', '対象カラム'))
上のクエリで「探したい値が対象カラムに含まれない、もしくは対象カラムがNULLである行」
が抽出できます。