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'