sql >> データベース >  >> RDS >> MariaDB

MariaDBでのFIND_IN_SET()のしくみ

    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'

    1. SQLではセミコロンが必要ですか?

    2. 製品レビュー–MySQLのステラ修復

    3. パラメータ化されたSELECTクエリにPDOオブジェクトを適切に使用するにはどうすればよいですか?

    4. Hekatonのネイティブにコンパイルされたストアドプロシージャを呼び出さない方法