MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie die INSERT()-Funktion in MariaDB funktioniert

In MariaDB INSERT() ist eine eingebaute String-Funktion, mit der Sie einen Teilstring in einen anderen String einfügen können.

Syntax

Die Syntax lautet wie folgt:

INSERT(str,pos,len,newstr)

Wobei str ist die Zeichenfolge, pos ist die Startposition für die Einfügung, len ist die Anzahl der zu ersetzenden Zeichen und newstr ist der einzufügende Teilstring.

Beispiel

Hier ist ein einfaches Beispiel:

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

Ergebnis:

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

Hier habe ich das Wort hot ersetzt mit dem Wort red .

Nachfolgend finden Sie weitere Beispiele, die zeigen, wie die Positions- und Längenargumente das Ergebnis beeinflussen können.

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";

Ergebnis:

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

Falsche Ausgangsposition

Wenn die Startposition außerhalb der Länge des Strings liegt, wird der ursprüngliche String zurückgegeben.

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";

Ergebnis:

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

Lange Argumente

Wenn die Länge (drittes Argument) genauso lang oder länger als der Rest des Strings ist, wird der Rest des Strings durch den Teilstring ersetzt.

Beispiel:

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";

Ergebnis:

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

Null-Argumente

Bereitstellung von null für jedes der Argumente ergibt sich 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";

Ergebnis:

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

Angabe der falschen Anzahl von Argumenten

Aufruf von INSERT() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT INSERT();

Ergebnis:

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