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

So fügen Sie einen String in MySQL mit INSERT() in einen anderen String ein

In MySQL können Sie das INSERT() verwenden Funktion zum Einfügen einer Zeichenkette in eine andere Zeichenkette.

Sie können entweder Teile der Zeichenfolge durch eine andere Zeichenfolge ersetzen (z. B. ein Wort ersetzen), oder Sie können sie unter Beibehaltung der ursprünglichen Zeichenfolge einfügen (z. B. ein Wort hinzufügen). Die Funktion akzeptiert 4 Argumente, die bestimmen, was die ursprüngliche Zeichenfolge ist, die Position, an der die neue Zeichenfolge eingefügt werden soll, die Anzahl der Zeichen, die aus der ursprünglichen Zeichenfolge gelöscht werden sollen, und die neue Zeichenfolge, die eingefügt werden soll.

Hier ist die Syntax:

INSERT(str,pos,len,newstr)

Wobei str ist die ursprüngliche Zeichenfolge, pos ist die Position, an der der neue String eingefügt wird, len ist die Anzahl der Zeichen, die aus der ursprünglichen Zeichenfolge gelöscht werden sollen, und newstr ist die neue Zeichenfolge, die eingefügt werden soll.

Ein Wort ersetzen

Hier ist ein Beispiel, in dem ich INSERT() verwende um ein Wort innerhalb einer Zeichenkette zu ersetzen:

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

Ergebnis:

Cats like dogs

Dies ersetzt effektiv das Wort and mit dem Wort like . Ich habe 6 verwendet weil das Wort und an der 6-Zeichen-Marke begann und ich 3 verwendet habe denn so viele Zeichen möchte ich löschen (das Wort and ist 3 Zeichen lang).

Fügen Sie ein Wort ein

Hier füge ich einfach ein Wort ein, ohne etwas aus der ursprünglichen Zeichenfolge zu löschen:

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

Ergebnis:

Cats and big dogs

Der Grund dafür, dass nichts aus der ursprünglichen Zeichenfolge gelöscht wird, liegt darin, dass ich 0 angegeben habe (was bedeutet, dass null Zeichen gelöscht werden sollten).

Werte außerhalb des zulässigen Bereichs

Wenn Sie eine Position angeben, die außerhalb der Länge des ursprünglichen Strings liegt, gibt MySQL den ursprünglichen String unverändert zurück.

Beispiel:

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

Ergebnis:

Cats and dogs

Hier ist ein weiteres Beispiel, in dem ich eine negative Startposition verwende:

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

Ergebnis:

Cats and dogs

Dies ist einer der Unterschiede zwischen INSERT() von MySQL -Funktion und STUFF() von Transact-SQL Funktion. In T-SQL das STUFF() Funktion würde NULL zurückgeben in diesen Fällen.

Einfügen von NULL-Werten

Ein weiterer Bereich, in dem MySQLs INSERT() unterscheidet sich von STUFF() von T-SQL ist mit NULL-Werten. Wenn Sie versuchen, einen NULL-Wert einzufügen, gibt MySQL NULL zurück .

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

Ergebnis:

NULL