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

MariaDBでのINSERT()関数のしくみ

    MariaDBでは、INSERT() は、サブストリングを別のストリングに挿入できる組み込みのストリング関数です。

    構文

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

    INSERT(str,pos,len,newstr)

    str 文字列、pos 挿入の開始位置、len 置換する文字数、およびnewstr 挿入する部分文字列です。

    基本的な例は次のとおりです。

    SELECT INSERT('The hot sun', 5, 3, 'red');

    結果:

    +------------------------------------+
    | INSERT('The hot sun', 5, 3, 'red') |
    +------------------------------------+
    | The red sun                        |
    +------------------------------------+

    ここで、hotという単語を置き換えました redという言葉で 。

    以下は、位置と長さの引数が結果にどのように影響するかを示すためのその他の例です。

    SELECT 
        INSERT('The hot sun', 5, 0, 'red ') AS "1",
        INSERT('The hot sun', 5, 3, 'black hole') AS "2",
        INSERT('The hot sun', 1, 7, 'Black hole') AS "3";

    結果:

    +-----------------+--------------------+----------------+
    | 1               | 2                  | 3              |
    +-----------------+--------------------+----------------+
    | The red hot sun | The black hole sun | Black hole sun |
    +-----------------+--------------------+----------------+

    間違った開始位置

    開始位置が文字列の長さの外側にある場合、元の文字列が返されます。

    SELECT 
        INSERT('The hot sun', 0, 3, 'red ') AS "1",
        INSERT('The hot sun', -5, 3, 'red') AS "2",
        INSERT('The hot sun', 20, 3, 'red') AS "3";

    結果:

    +-------------+-------------+-------------+
    | 1           | 2           | 3           |
    +-------------+-------------+-------------+
    | The hot sun | The hot sun | The hot sun |
    +-------------+-------------+-------------+
    >

    長い引数

    長さ(3番目の引数)が文字列の残りの部分と同じかそれより長い場合、文字列の残りの部分はサブ文字列に置き換えられます。

    例:

    SELECT 
        INSERT('The hot sun', 5, 10, 'red ') AS "1",
        INSERT('The hot sun', 9, 3, 'pavement') AS "2",
        INSERT('The hot sun', 9, 4, 'pavement') AS "3",
        INSERT('The hot sun', 1, 20, 'red') AS "4";

    結果:

    +----------+------------------+------------------+------+
    | 1        | 2                | 3                | 4    |
    +----------+------------------+------------------+------+
    | The red  | The hot pavement | The hot pavement | red  |
    +----------+------------------+------------------+------+

    ヌル引数

    nullを提供する いずれの引数についても、結果はnullになります。 :

    SELECT 
        INSERT(null, 5, 10, 'red ') AS "1",
        INSERT('The hot sun', null, 3, 'pavement') AS "2",
        INSERT('The hot sun', 9, null, 'pavement') AS "3",
        INSERT('The hot sun', 1, 20, null) AS "4";

    結果:

    +------+------+------+------+
    | 1    | 2    | 3    | 4    |
    +------+------+------+------+
    | NULL | NULL | NULL | NULL |
    +------+------+------+------+

    間違った数の引数を指定する

    INSERT()を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:

    SELECT INSERT();

    結果:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

    1. UPDATEステートメントの影響を受ける行数を返します

    2. PostgreSQLでサポートされているタイムゾーンのリストを返す

    3. 最後に挿入された行IDを取得します(SQLステートメントを使用)

    4. OracleのJSON_OBJECT()関数