Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist das MySQL-Äquivalent von STUFF() in SQL Server?

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