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

MySQLのFIELD()とFIND_IN_SET()の違い

    MySQLにはFIELD()が含まれています 関数とFIND_IN_SET() 両方がリスト内の文字列の位置を返す関数。ただし、これらの機能は互いに少し異なります。

    これら2つの機能の主な違いは次のとおりです。

    • FIND_IN_SET() 文字列リスト内の文字列のインデックス位置を返します。
    • FIELD() 引数のリスト内の文字列のインデックス位置を返します。

    したがって、1つの関数が文字列リストを検索します 、および他の関数は引数のリストを検索します 。

    構文

    まず、2つの関数の構文を見てみましょう。

    FIELD()

    FIELD()の構文 関数は次のようになります:

    FIELD(str,str1,str2,str3,...)

    これは、最初の引数とそれに続く複数の後続の引数で構成されます。後続の引数は検索されるものですが、それらの多くはあります。

    FIND_IN_SET()

    FIND_IN_SET()の構文 関数は次のようになります:

    FIND_IN_SET(str,strlist)

    これは、最初の引数とそれに続くもう1つの引数で構成されます。 2番目の引数には、検索する文字列のリストが含まれています。

    FIELD()

    これがFIELD()の例です 動作中の機能:

    SELECT FIELD('horse', 'Cat','Dog','Horse') AS 'Result';

    結果:

    +--------+
    | Result |
    +--------+
    |      3 |
    +--------+
    

    FIND_IN_SET()

    FIND_IN_SET()の方法は次のとおりです。 同じ結果が得られるように関数が作成されます:

    SELECT FIND_IN_SET('horse', 'Cat,Dog,Horse') AS 'Result';

    結果:

    +--------+
    | Result |
    +--------+
    |      3 |
    +--------+
    


    1. 2022年に準備しなければならない上位115のSQLインタビューの質問

    2. 大規模な削除操作をチャンクに分割します

    3. Oracle DB Server + APEX + ORDS + JasperReportsをゼロから(パート4)

    4. MySQLで行をフィルタリングする句