Als u bekend bent met SQL Server, weet u wellicht dat u de T-SQL STUFF()
kunt gebruiken functie om een string in een string in te voegen. Het blijkt dat MySQL een vergelijkbare functie heeft, maar met een andere naam.
MySQL's INSERT()
functie doet in wezen hetzelfde als de T-SQL STUFF()
functie wel.
Op een paar kleine verschillen na (zie hieronder), werken beide functies precies hetzelfde.
Syntaxis
Dit is de officiële syntaxis van elk van deze functies.
T-SQL – De STUFF() Functie
STUFF ( character_expression , start , length , replaceWith_expression )
MySQL – De INSERT()-functie
INSERT(str,pos,len,newstr)
Hoewel elk van deze definities verschillende terminologie gebruikt, doen ze in principe hetzelfde.
Voorbeelden
Hier is een voorbeeld van elk van deze functies in actie.
T-SQL – De STUFF() Functie
SELECT STUFF('Cats and dogs', 6, 3, 'like');
Resultaat:
Cats like dogs
MySQL – De INSERT()-functie
SELECT INSERT('Cats and dogs', 6, 3, 'like');
Resultaat:
Cats like dogs
Zoals u kunt zien, is het enige verschil de functienaam. We kunnen de een naar de ander overdragen door simpelweg de naam van de functie te veranderen.
Verschillen tussen STUFF() en INSERT()
Er zijn een paar verschillen in hoe deze functies werken. De twee belangrijkste verschillen zijn met name hoe ze omgaan met:
- Buiten bereik posities
- NULL-waarden
Deze verschillen worden hieronder uitgelegd.
Buiten bereik posities
Als u probeert in te voegen op een positie die buiten de lengte van de originele tekenreeks ligt, wordt INSERT()
van MySQL functie retourneert de oorspronkelijke tekenreeks. Aan de andere kant, T-SQL's STUFF()
functie retourneert NULL
.
T-SQL – De STUFF() Functie
SELECT STUFF('Cats and dogs', 20, 4, 'rabbits');
Resultaat:
NULL
MySQL – De INSERT()-functie
SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');
Resultaat:
Cats and dogs
NULL-waarden
Deze twee functies verschillen ook in hoe ze omgaan met NULL-waarden die u probeert in te voegen.
T-SQL – De STUFF() Functie
SELECT STUFF('Cats and dogs', 6, 3, NULL);
Resultaat:
Cats dogs
T-SQL – De INSERT()-functie
SELECT INSERT('Cats and dogs', 6, 3, NULL);
Resultaat:
NULL