В 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 | +-------------+-------------+-------------+
Аргументи с дълга дължина
Ако дължината (трети аргумент) е толкова дълга или по-дълга от останалата част от низа, остатъкът от низа се заменя с подниз.
Пример:
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