Wenn Sie mit SQL Server vertraut sind, wissen Sie vielleicht, dass Sie T-SQL STUFF()
verwenden können Funktion zum Einfügen eines Strings in einen String. Wie sich herausstellt, hat MySQL eine ähnliche Funktion – aber mit einem anderen Namen.
MySQLs INSERT()
Die Funktion macht im Wesentlichen dasselbe wie die T-SQL STUFF()
Funktion tut.
Mit Ausnahme einiger geringfügiger Unterschiede (siehe unten) funktionieren beide Funktionen genau gleich.
Syntax
Hier ist die offizielle Syntax jeder dieser Funktionen.
T-SQL – Die STUFF()-Funktion
STUFF ( character_expression , start , length , replaceWith_expression )
MySQL – Die INSERT()-Funktion
INSERT(str,pos,len,newstr)
Obwohl jede dieser Definitionen eine andere Terminologie verwendet, tun sie im Grunde dasselbe.
Beispiele
Hier ist ein Beispiel für jede dieser Funktionen in Aktion.
T-SQL – Die STUFF()-Funktion
SELECT STUFF('Cats and dogs', 6, 3, 'like');
Ergebnis:
Cats like dogs
MySQL – Die INSERT()-Funktion
SELECT INSERT('Cats and dogs', 6, 3, 'like');
Ergebnis:
Cats like dogs
Wie Sie sehen können, ist der einzige Unterschied der Funktionsname. Wir können das eine zum anderen portieren, indem wir einfach den Namen der Funktion ändern.
Unterschiede zwischen STUFF() und INSERT()
Es gibt einige Unterschiede in der Funktionsweise dieser Funktionen. Die beiden Hauptunterschiede bestehen insbesondere darin, wie sie mit Folgendem umgehen:
- Positionen außerhalb des Bereichs
- NULL-Werte
Diese Unterschiede werden unten erklärt.
Positionen außerhalb des Bereichs
Wenn Sie versuchen, an einer Position einzufügen, die außerhalb der Länge der ursprünglichen Zeichenfolge liegt, wird MySQLs INSERT()
Die Funktion gibt den ursprünglichen String zurück. Andererseits STUFF()
von T-SQL Funktion gibt NULL
zurück .
T-SQL – Die STUFF()-Funktion
SELECT STUFF('Cats and dogs', 20, 4, 'rabbits');
Ergebnis:
NULL
MySQL – Die INSERT()-Funktion
SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');
Ergebnis:
Cats and dogs
NULL-Werte
Diese beiden Funktionen unterscheiden sich auch darin, wie sie mit NULL-Werten umgehen, die Sie einzufügen versuchen.
T-SQL – Die STUFF()-Funktion
SELECT STUFF('Cats and dogs', 6, 3, NULL);
Ergebnis:
Cats dogs
T-SQL – Die INSERT()-Funktion
SELECT INSERT('Cats and dogs', 6, 3, NULL);
Ergebnis:
NULL