裏MySQLクエリー入門(12) 基礎編9 FIND_IN_SET

 先週は、仕事で燃え尽きて萌えかす*1程の気力しか残っていなかったIT7Cです。今日はMySQL文字列関数FIND_IN_SETについて紹介したいと思います。FIND_IN_SETは、カンマ区切りの文字列から任意の文字列を取り出す、GROUP_CONCATの逆の関数みたいなものです。

  • FIND_IN_SET(str,strlist)

N 個の部分文字列で構成されるリスト strlist に、文字列 str が含まれている場合は、1 から N までのいずれかの値を返す。文字列のリストは、それぞれの間を ‘,’ 文字で区切られた各部分文字列で構成される文字列である。最初の引数が定数文字列で、2 番目の引数が SET 型のカラムの場合、FIND_IN_SET() 関数はビット演算を使用するよう最適化される。 str が strlist に含まれていない場合や、strlist が空の文字列の場合は、0 を返す。どちらの引数も NULL の場合は、NULL を返す。 最初の引数にカンマ ‘,’ が含まれていると、この関数は正しく動作しない。

SELECT FIND_IN_SET('b','a,b,c,d');
2

*1:google IMEって他のIMEと違って変な変換候補でますよね。おもろいのでそのままにしてみました。

続きを読む