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

MySQLの引数のリスト内で引数の位置を返す方法

    MySQLでは、FIELD()を使用できます 引数のリスト内の指定された文字列または数値の位置を返す関数。この関数は、後続の引数のリストの最初の引数のインデックス(位置)を返します。

    構文は次のようになります:

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

    str は検索するアイテムであり、str1,str2,str3,... 検索しているリストです。

    次に例を示します:

    SELECT FIELD('Homer', 'Marge', 'Homer', 'Bart') AS 'Where is Homer?';

    結果:

    +-----------------+
    | Where is Homer? |
    +-----------------+
    |               2 |
    +-----------------+
    

    この例では、リストは次のとおりです。'Marge', 'Homer', 'Bart' 文字列Homerを検索しています そのリスト内。そしてHomer は引数のリストの2番目の項目であり、結果は2です。 。

    完全一致

    完全に一致する必要があることに注意してください。一致しない場合は、0が返されます。 。

    たとえば、rを削除すると Homerから 、Homeを検索することになります 代わりに:

    SELECT FIELD('Home', 'Marge', 'Homer', 'Bart') AS 'Where is Home?';

    結果:

    +-----------------+
    | Where is Home? |
    +-----------------+
    |               0 |
    +-----------------+
    

    この場合、Homerであっても Homeが含まれています 、完全に一致するわけではなく、結果は0です。 。

    数字

    FIELD() 関数は数字でも機能します:

    SELECT FIELD(1, 3, 2, 1) AS 'Where is 1?';

    結果:

    +-------------+
    | Where is 1? |
    +-------------+
    |           3 |
    +-------------+
    

    FIELD()へのすべての引数が は数値であり、すべての引数は数値として比較されます。すべてが文字列の場合、文字列として比較されます。それらが混在している場合、それらは2倍として比較されます。

    FIELD() 関数はELT()を補完するものです 関数。リスト内の位置でリストアイテムを検索できます。

    FIND_IN_SET()を使用してリストアイテムの位置を返す方法もご覧ください。 機能。


    1. mysqlの大きなテーブルからランダムな行をすばやく選択

    2. SQLiteにテーブルが存在するかどうかを確認する方法

    3. PostgreSQLにテーブルが存在するかどうかを確認する5つの方法

    4. 生命保険データモデル