W MariaDB, INSERT()
jest wbudowaną funkcją ciągu, która pozwala wstawić podciąg do innego ciągu.
Składnia
Składnia wygląda tak:
INSERT(str,pos,len,newstr)
Gdzie str
jest ciągiem, pos
jest pozycją początkową wstawiania, len
to liczba znaków do zastąpienia, a newstr
jest podciągiem do wstawienia.
Przykład
Oto podstawowy przykład:
SELECT INSERT('The hot sun', 5, 3, 'red');
Wynik:
+------------------------------------+ | INSERT('The hot sun', 5, 3, 'red') | +------------------------------------+ | The red sun | +------------------------------------+
Tutaj zastąpiłem słowo hot
ze słowem red
.
Poniżej znajduje się więcej przykładów pokazujących, w jaki sposób argumenty pozycji i długości mogą wpływać na wynik.
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";
Wynik:
+-----------------+--------------------+----------------+ | 1 | 2 | 3 | +-----------------+--------------------+----------------+ | The red hot sun | The black hole sun | Black hole sun | +-----------------+--------------------+----------------+
Niewłaściwa pozycja początkowa
Jeśli pozycja początkowa znajduje się poza długością ciągu, zwracany jest oryginalny ciąg.
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";
Wynik:
+-------------+-------------+-------------+ | 1 | 2 | 3 | +-------------+-------------+-------------+ | The hot sun | The hot sun | The hot sun | +-------------+-------------+-------------+
Długie argumenty
Jeśli długość (trzeci argument) jest tak długa lub dłuższa niż reszta ciągu, reszta ciągu jest zastępowana podciągiem.
Przykład:
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";
Wynik:
+----------+------------------+------------------+------+ | 1 | 2 | 3 | 4 | +----------+------------------+------------------+------+ | The red | The hot pavement | The hot pavement | red | +----------+------------------+------------------+------+
Argumenty zerowe
Podanie null
dla dowolnego z argumentów daje wynik 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";
Wynik:
+------+------+------+------+ | 1 | 2 | 3 | 4 | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Podanie niewłaściwej liczby argumentów
Wywołanie INSERT()
z niewłaściwą liczbą argumentów lub bez przekazania jakichkolwiek argumentów powoduje błąd:
SELECT INSERT();
Wynik:
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