sql >> Database teknologi >  >> RDS >> Mysql

Sådan indsætter du en streng i en anden streng i MySQL ved hjælp af INSERT()

I MySQL kan du bruge INSERT() funktion til at indsætte en streng i en anden streng.

Du kan enten erstatte dele af strengen med en anden streng (f.eks. udskifte et ord), eller du kan indsætte den, mens du bibeholder den originale streng (f.eks. tilføje et ord). Funktionen accepterer 4 argumenter, som bestemmer, hvad den oprindelige streng er, positionen til at indsætte den nye streng med, antallet af tegn, der skal slettes fra den originale streng, og den nye streng, der skal indsættes.

Her er syntaksen:

INSERT(str,pos,len,newstr)

Hvor str er den originale streng, pos er den position, hvor den nye streng vil blive indsat, len er antallet af tegn, der skal slettes fra den originale streng, og newstr er den nye streng, der skal indsættes.

Erstat et Word

Her er et eksempel, hvor jeg bruger INSERT() for at erstatte et ord i en streng:

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

Resultat:

Cats like dogs

Dette erstatter effektivt ordet and med ordet like . Jeg brugte 6 fordi ordet og startede med 6 tegn, og jeg brugte 3 fordi det er hvor mange tegn jeg vil slette (ordet and er 3 tegn langt).

Indsæt et ord

Her indsætter jeg blot et ord uden at slette noget fra den originale streng:

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

Resultat:

Cats and big dogs

Grunden til at dette ikke sletter noget fra den originale streng, er fordi jeg har angivet 0 (hvilket betyder, at nul tegn skal slettes).

Værdier uden for område

Hvis du angiver en position, der er uden for længden af ​​den originale streng, vil MySQL returnere den oprindelige streng uændret.

Eksempel:

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

Resultat:

Cats and dogs

Her er et andet eksempel, hvor jeg bruger en negativ startposition:

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

Resultat:

Cats and dogs

Dette er en af ​​forskellene mellem MySQL's INSERT() funktion og Transact-SQL's STUFF() fungere. I T-SQL er STUFF() funktion ville returnere NULL i disse tilfælde.

Indsættelse af NULL-værdier

Et andet område, hvor MySQL's INSERT() adskiller sig fra T-SQL's STUFF() er med NULL-værdier. Hvis du forsøger at indsætte en NULL-værdi, vil MySQL returnere NULL .

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

Resultat:

NULL

  1. Drop udenlandsk nøgle uden at kende navnet på begrænsningen?

  2. 3 måder at liste alle lagrede procedurer i en SQL Server-database

  3. PostgreSQL:Giv alle tilladelser til en bruger på en PostgreSQL-database

  4. MySQL månedligt udsalg af de seneste 12 måneder inklusive måneder uden udsalg