MySQL INSTR()関数とFIND_IN_SET()関数の違い
MySQL の INSTR() 関数は文字列内で部分文字列を検索し、元の文字列における部分文字列の開始位置を返します。構文は次のとおりです。
INSTR(str, substr)
元の文字列がstrで検索する対象の文字列がsubstrとなります。検索対象の文字列が見つかった時は元の文字列内の位置を返し、見つからなかった時は0を返します。
MySQLのFIND_IN_SET()関数は、コンマ区切りの文字列リスト内で指定した値を検索し、リスト内の値の位置を返します。構文は次のとおりです。
FIND_IN_SET(str, strlist)
str が検索する値で、strlist はカンマ区切りの文字列のリストです。指定された値をリスト内で検出した場合はリスト内でのインデックスを返します、検出できなかった場合は 0 を返します。
違い
- INSTR() 関数は任意の文字列内で部分文字列を検索するために使用され、FIND_IN_SET() 関数はコンマ区切りの文字列リスト内で特定の値を検索するために使用されるため、使用範囲が異なります。
- INSTR() 関数は部分文字列が元の文字列内にある位置を返し、FIND_IN_SET() 関数はリスト内の値の位置を返します。
- INSTR() 関数は2つの引数、元の文字列と部分文字列、が必要ですが、FIND_IN_SET() 関数には2つの引数は必要であり、1つは検索する値、もう1つはコンマで区切られた文字列のリストです。