【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」を持つ行を選択してみます。
・FIND_IN_SET(str, strlist)
戻り値:strlist 中の文字列の存在する順番を 1 ~ N で返す。
見つからない場合は「0」を返す。
str:検索文字列
strlist:検索対象のカンマ区切り文字列
実際の例を以下に示します。
最初のSELECT文では文字列 '20' の位置である「2」が返されますが、 コードの存在しない場合には「0」が返されます。
また、この FIND_IN_SET 関数を WHERE 句で使うことができます。
以下の様なテーブルを仮に作成しました。
このテーブルの「COL1」に対してコード「20」を持つ行を選択してみます。
コメント