MariaDBでは、FIND_IN_SET() は、指定された文字列リストで指定されたパターンが出現するインデックス位置を返す組み込みの文字列関数です。
2つの引数を受け入れます。 1つ目は、検索するパターンです。 2番目の引数は、パターンを照合するためのコンマ区切りの値を含む文字列です。
構文
構文は次のようになります:
FIND_IN_SET(pattern, strlist)
ここでpattern 検索するパターンであり、strlist 検索するコンマ区切り値の文字列を表します。
例
基本的な例は次のとおりです。
SELECT FIND_IN_SET('Green', 'Red,Green,Blue'); 結果:
+----------------------------------------+
| FIND_IN_SET('Green', 'Red,Green,Blue') |
+----------------------------------------+
| 2 |
+----------------------------------------+
この場合、パターン(Green )は2番目の位置で発生するため、2 返されます。
一致なし
一致するものがない場合は、0 返されます。
例:
SELECT FIND_IN_SET('Nope', 'Red,Green,Blue'); 結果:
+---------------------------------------+
| FIND_IN_SET('Nope', 'Red,Green,Blue') |
+---------------------------------------+
| 0 |
+---------------------------------------+ 複数の一致
複数の一致がある場合は、最初のインデックスのみが返されます:
SELECT FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat'); 結果:
+-------------------------------------------+
| FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat') |
+-------------------------------------------+
| 2 |
+-------------------------------------------+> ヌルパターンの指定
nullを提供する 最初の引数はnullになります 返される:
SELECT FIND_IN_SET(null, 'Cat,Dog,Cat'); 結果:
+----------------------------------+ | FIND_IN_SET(null, 'Cat,Dog,Cat') | +----------------------------------+ | NULL | +----------------------------------+
ヌル文字列リストの指定
nullを提供する 2番目の引数もnullになるため :
SELECT FIND_IN_SET('Dog', null); 結果:
+--------------------------+
| FIND_IN_SET('Dog', null) |
+--------------------------+
| NULL |
+--------------------------+ 空の文字列リスト
文字列リストが空の場合、FIND_IN_SET() 0を返します :
SELECT FIND_IN_SET('Dog', ''); 結果:
+------------------------+
| FIND_IN_SET('Dog', '') |
+------------------------+
| 0 |
+------------------------+ パターンのコンマ
FIND_IN_SET() パターンにコンマが含まれている場合、正しい結果を返しません:
SELECT FIND_IN_SET('Green,', 'Red,Green,Blue'); 結果:
+-----------------------------------------+
| FIND_IN_SET('Green,', 'Red,Green,Blue') |
+-----------------------------------------+
| 0 |
+-----------------------------------------+ 単一の引数
FIND_IN_SET()に引数を1つだけ渡す エラーを返します:
SELECT FIND_IN_SET('Cat'); 結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'
引数がありません
FIND_IN_SET()を呼び出す 引数を渡さないとエラーが発生します:
SELECT FIND_IN_SET(); 結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'