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

MySQL –リストからインデックス位置を抽出するELT()およびFILED()関数

    MySQLは、配列として配置された値のセットからインデックス位置または実際の値を抽出するために使用できるいくつかの関数をサポートしています。 ELT()とFIELD()はそのような関数の例です。それらについて詳しく理解しましょう。

    ELT()関数は、最初の引数が数値である多くの引数を受け入れます。最初の引数で指定された位置で使用可能な値を返します。

    SELECT ELT(3,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

    上記のクエリは、結果を「MySQL」として返します。使用可能な値のセットから、MySQLである3番目の値を返します。最初の引数が0、ゼロ未満、または引数の総数より大きい場合はNULLを返します

    SELECT ELT(0,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;


    結果をnull値として返す別の2つの例を次に示します。

    SELECT ELT(31,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
    SELECT ELT(-5,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

    上記はすべてNULL値を返します。

    FILED()関数はELT()の正反対です。多くの引数を受け入れ、最初の値として指定された配列内の値の位置を返します

    SELECT FIELD('My SQL','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

    上記は、最初の引数「My SQL」で指定された値が配列の3番目の位置で使用可能であるため、3を返します。

    配列に値が指定されていない場合は0を返します

    SELECT FIELD('COMPUTER','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

    結果は0です。

    ビジネスロジックでこれらの関数を使用したことがありますか?はいの場合、私はそれらを知りたいです。


    1. SQL Serverプロファイラーに相当するPostgreSQLはありますか?

    2. mysqlのデータ行から改行文字を削除するにはどうすればよいですか?

    3. MySQLWorkbenchの代替-ClusterControl構成管理

    4. PostgreSQLにトリガーが存在するかどうかを確認するにはどうすればよいですか?