sql >> Database >  >> RDS >> Mysql

Een string invoegen in een andere string in MySQL met INSERT()

In MySQL kunt u de INSERT() . gebruiken functie om een ​​string in een andere string in te voegen.

U kunt delen van de tekenreeks vervangen door een andere tekenreeks (bijvoorbeeld een woord vervangen), of u kunt deze invoegen met behoud van de oorspronkelijke tekenreeks (bijvoorbeeld een woord toevoegen). De functie accepteert 4 argumenten die bepalen wat de originele string is, de positie waarmee de nieuwe string moet worden ingevoegd, het aantal tekens dat moet worden verwijderd uit de originele string en de nieuwe string die moet worden ingevoegd.

Dit is de syntaxis:

INSERT(str,pos,len,newstr)

Waar str is de originele string, pos is de positie waar de nieuwe string zal worden ingevoegd, len is het aantal tekens dat uit de originele tekenreeks moet worden verwijderd, en newstr is de nieuwe tekenreeks die moet worden ingevoegd.

Een woord vervangen

Hier is een voorbeeld waarbij ik INSERT() . gebruik om een ​​woord in een tekenreeks te vervangen:

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

Resultaat:

Cats like dogs

Dit vervangt effectief het woord and met het woord like . Ik gebruikte 6 omdat het woord en begon bij het teken van 6 tekens, en ik gebruikte 3 want dat is het aantal tekens dat ik wil verwijderen (het woord and is 3 tekens lang).

Voeg een woord in

Hier voeg ik gewoon een woord in zonder iets uit de originele string te verwijderen:

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

Resultaat:

Cats and big dogs

De reden dat dit niets van de originele string verwijdert, is omdat ik 0 . heb opgegeven (wat betekent dat nul tekens moeten worden verwijderd).

Waarden buiten bereik

Als je een positie opgeeft die buiten de lengte van de originele string ligt, zal MySQL de originele string ongewijzigd teruggeven.

Voorbeeld:

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

Resultaat:

Cats and dogs

Hier is nog een voorbeeld waarbij ik een negatieve startpositie gebruik:

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

Resultaat:

Cats and dogs

Dit is een van de verschillen tussen MySQL's INSERT() functie en Transact-SQL's STUFF() functie. In T-SQL is de STUFF() functie zou NULL teruggeven in deze gevallen.

NULL-waarden invoegen

Een ander gebied waar MySQL's INSERT() verschilt van T-SQL's STUFF() is met NULL-waarden. Als u een NULL-waarde probeert in te voegen, retourneert MySQL NULL .

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

Resultaat:

NULL

  1. Hoe NU() werkt in MariaDB

  2. Hoe een versie 4 (willekeurige) UUID op Oracle te genereren?

  3. Tips voor het bewaken van MariaDB-replicatie met ClusterControl

  4. Wat is het verschil tussen MySQL, MySQLi en PDO?