【MySQL】カラムの中のカンマ区切りのコードチェックは FIND_IN_SET 関数を使用する

コードがカンマで連結して格納されているカラムに、指定するコードが存在するかをチェックするには FIND_IN_SET 関数が便利です。関数の使用方法は以下となります。

FIND_IN_SET(str, strlist)
 戻り値:strlist 中の文字列の存在する順番を 1 ~ N で返す。
     見つからない場合は「0」を返す。
 str:検索文字列
 strlist:検索対象のカンマ区切り文字列

実際の例を以下に示します。

最初のSELECT文では文字列 '20' の位置である「2」が返されますが、 コードの存在しない場合には「0」が返されます。

また、この FIND_IN_SET 関数を WHERE 句で使うことができます。
以下の様なテーブルを仮に作成しました。

このテーブルの「COL1」に対してコード「20」を持つ行を選択してみます。


コメント(0)