sql >> Databáze >  >> RDS >> Mysql

Jak vložit řetězec do jiného řetězce v MySQL pomocí INSERT()

V MySQL můžete použít INSERT() funkce pro vložení řetězce do jiného řetězce.

Části řetězce můžete buď nahradit jiným řetězcem (např. nahradit slovo), nebo jej můžete vložit při zachování původního řetězce (např. přidat slovo). Funkce přijímá 4 argumenty, které určují, jaký je původní řetězec, pozici, na kterou se má vložit nový řetězec, počet znaků, které se mají z původního řetězce odstranit, a nový řetězec, který se má vložit.

Zde je syntaxe:

INSERT(str,pos,len,newstr)

Kde str je původní řetězec, pos je pozice, na kterou bude vložen nový řetězec, len je počet znaků, které se mají odstranit z původního řetězce, a newstr je nový řetězec, který se má vložit.

Nahradit slovo

Zde je příklad, kdy používám INSERT() chcete-li nahradit slovo v řetězci:

SELECT INSERT('Cats and dogs', 6, 3, 'like');

Výsledek:

Cats like dogs

To efektivně nahrazuje slovo and se slovem like . Použil jsem 6 protože slovo a začínalo na 6znakové značce a já jsem použil 3 protože tolik znaků chci smazat (slovo and má 3 znaky).

Vložit slovo

Zde jednoduše vložím slovo, aniž bych cokoli vymazal z původního řetězce:

SELECT INSERT('Cats and dogs', 10, 0, 'big ');

Výsledek:

Cats and big dogs

Důvod, proč se nic z původního řetězce neodstraní, je ten, že jsem zadal 0 (což znamená, že by se nemělo smazat nula znaků).

Hodnoty mimo rozsah

Pokud zadáte pozici, která je mimo délku původního řetězce, MySQL vrátí původní řetězec nezměněný.

Příklad:

SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');

Výsledek:

Cats and dogs

Zde je další příklad, kdy používám zápornou výchozí pozici:

SELECT INSERT('Cats and dogs', -1, 4, 'rabbits');

Výsledek:

Cats and dogs

Toto je jeden z rozdílů mezi INSERT() MySQL funkce a STUFF() Transact-SQL funkce. V T-SQL, STUFF() funkce vrátí NULL v těchto případech.

Vložení hodnot NULL

Další oblast, kde je INSERT() MySQL se liší od STUFF() T-SQL je s hodnotami NULL. Pokud se pokusíte vložit hodnotu NULL, MySQL vrátí NULL .

SELECT INSERT('Cats and dogs', 6, 3, NULL);

Výsledek:

NULL

  1. Jaký je problém roku 2038?

  2. postgreSQL - in vs

  3. Vytvořte pohled s klauzulí ORDER BY

  4. Více CTE v jednom dotazu