sql >> Databasteknik >  >> RDS >> Mysql

Vad är MySQL-ekvivalenten för STUFF() i SQL Server?

Om du är bekant med SQL-server  kanske du vet att du kan använda T-SQL STUFF() funktion för att infoga en sträng i en sträng. Som det visar sig har MySQL en liknande funktion – men med ett annat namn.

MySQL:s INSERT() funktion gör i huvudsak samma sak som T-SQL STUFF() funktion gör det.

Med undantag för ett par mindre skillnader (se nedan) fungerar båda funktionerna exakt likadant.

Syntax

Här är den officiella syntaxen för var och en av dessa funktioner.

T-SQL – STUFF()-funktionen

STUFF ( character_expression , start , length , replaceWith_expression )

MySQL – INSERT()-funktionen

INSERT(str,pos,len,newstr)

Även om var och en av dessa definitioner använder olika terminologi, gör de i princip samma sak.

Exempel

Här är ett exempel på var och en av dessa funktioner i funktion.

T-SQL – STUFF()-funktionen

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

Resultat:

Cats like dogs

MySQL – INSERT()-funktionen

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

Resultat:

Cats like dogs

Som du kan se är den enda skillnaden funktionsnamnet. Vi kan porta den ena till den andra genom att helt enkelt ändra namnet på funktionen.

Skillnader mellan STUFF() och INSERT()

Det finns ett par skillnader i hur dessa funktioner fungerar. I synnerhet är de två huvudsakliga skillnaderna hur de hanterar:

  • Positioner utanför räckvidd
  • NULL-värden

Dessa skillnader förklaras nedan.

Positioner utanför räckvidd

Om du försöker infoga på en position som är utanför längden på den ursprungliga strängen, MySQL:s INSERT() funktion returnerar den ursprungliga strängen. Å andra sidan, T-SQL:s STUFF() funktionen returnerar NULL .

T-SQL – STUFF()-funktionen

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

Resultat:

NULL

MySQL – INSERT()-funktionen

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

Resultat:

Cats and dogs

NULL-värden

Dessa två funktioner skiljer sig också åt i hur de hanterar eventuella NULL-värden du försöker infoga.

T-SQL – STUFF()-funktionen

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

Resultat:

Cats dogs

T-SQL – INSERT()-funktionen

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

Resultat:

NULL

  1. Hur testar man om en MySQL-fråga lyckades ändra databastabelldata?

  2. Använd flera konfliktmål i ON CONFLICT-satsen

  3. Förbättringar av framstegsrapportering i PostgreSQL 12

  4. Hur man exporterar frågeresultat till en CSV-fil i SQLcl (Oracle)