sql >> Databasteknik >  >> RDS >> Mysql

Hur man infogar en sträng i en annan sträng i MySQL med INSERT()

I MySQL kan du använda INSERT() funktion för att infoga en sträng i en annan sträng.

Du kan antingen ersätta delar av strängen med en annan sträng (t.ex. ersätta ett ord), eller så kan du infoga den samtidigt som den ursprungliga strängen bibehålls (t.ex. lägg till ett ord). Funktionen accepterar 4 argument som bestämmer vad den ursprungliga strängen är, positionen för att infoga den nya strängen, antalet tecken som ska raderas från den ursprungliga strängen och den nya strängen som ska infogas.

Här är syntaxen:

INSERT(str,pos,len,newstr)

Där str är den ursprungliga strängen, pos är positionen där den nya strängen kommer att infogas, len är antalet tecken som ska raderas från den ursprungliga strängen och newstr är den nya strängen att infoga.

Ersätt ett ord

Här är ett exempel där jag använder INSERT() för att ersätta ett ord i en sträng:

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

Resultat:

Cats like dogs

Detta ersätter faktiskt ordet and med ordet like . Jag använde 6 eftersom ordet och började med 6 tecken, och jag använde 3 eftersom det är hur många tecken jag vill ta bort (ordet and är 3 tecken långt).

Infoga ett ord

Här infogar jag helt enkelt ett ord utan att ta bort något från originalsträngen:

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

Resultat:

Cats and big dogs

Anledningen till att detta inte tar bort något från den ursprungliga strängen är att jag angav 0 (vilket betyder att noll tecken ska tas bort).

Värden utanför intervallet

Om du anger en position som är utanför längden på den ursprungliga strängen, kommer MySQL att returnera den ursprungliga strängen oförändrad.

Exempel:

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

Resultat:

Cats and dogs

Här är ett annat exempel där jag använder en negativ startposition:

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

Resultat:

Cats and dogs

Detta är en av skillnaderna mellan MySQL:s INSERT() funktion och Transact-SQL:s STUFF() fungera. I T-SQL, STUFF() funktion skulle returnera NULL i dessa fall.

Infoga NULL-värden

Ett annat område där MySQL:s INSERT() skiljer sig från T-SQL:s STUFF() är med NULL-värden. Om du försöker infoga ett NULL-värde kommer MySQL att returnera NULL .

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

Resultat:

NULL

  1. Hur man får en beräknad kolumns definition i SQL Server med T-SQL

  2. SQL-Nycklar

  3. Öppnar Android Sqlite Database i Fragment

  4. Konfigurera heterogen databasreplikering – SQL Server till Oracle