平成30/ 2018-12-14 11:07
MySQL FIND_IN_SET カンマ区切り

FIND_IN_SETでできる!
気をつけることとして、
「FIND_IN_SET」と「(」の間にスペースいれないように!!
×FIND_IN_SET (str,strlist)
○FIND_IN_SET(str,strlist)

■以下詳細!!
FIND_IN_SET(str,strlist)

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

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


camma,cumma,comma,CSV