sql >> Databasteknik >  >> RDS >> Mysql

MySQL REPLACE() – Ersätt alla instanser av en delsträng med en annan sträng

MySQL REPLACE() funktionen gör att du kan ersätta alla förekomster av en delsträng med en annan sträng. Det låter dig göra saker som att ersätta alla förekomster av ett ord med ett annat ord, etc.

Den här artikeln visar dess användning.

Syntax

Så här går syntaxen till:

REPLACE(str,from_str,to_str)

Där str är strängen som innehåller delsträngen/erna. from_str är delsträngen du vill ersätta med en annan sträng. Och to_str är den nya strängen som kommer att ersätta den gamla strängen.

Exempel

Här är ett grundläggande exempel:

SELECT REPLACE('Cats and dogs and cats and rabbits', 'and', 'or') AS Result;

Resultat:

+---------------------------------+
| Result                          |
+---------------------------------+
| Cats or dogs or cats or rabbits |
+---------------------------------+

I det här fallet byter vi helt enkelt ordet and med ordet or . Eftersom det fanns tre förekomster av det ordet ersattes alla tre.

Case-sensitive

Det är viktigt att komma ihåg att REPLACE() funktionen är skiftlägeskänslig.

Exempel:

SELECT REPLACE('Cats and dogs and cats and rabbits', 'cat', 'flea') AS Result;

Resultat:

+-------------------------------------+
| Result                              |
+-------------------------------------+
| Cats and dogs and fleas and rabbits |
+-------------------------------------+

I det här fallet, endast en instans av cat ersattes, eftersom endast en instans hade rätt ärende. Den första instansen hade en versal C så det stämde inte.

Ta bort en delsträng

Du kan också ta bort en delsträng helt enkelt genom att ersätta delsträngen med den tomma strängen ('' ):

SELECT REPLACE('http://www.database.guide', 'www.', '') AS Result;

Resultat:

+-----------------------+
| Result                |
+-----------------------+
| http://database.guide |
+-----------------------+

Ett skydd

Ett annat (kanske säkrare) sätt att göra detta är att inkludera en del av den omgivande texten och sedan ta bort den onödiga delen:

SELECT REPLACE('http://www.database.guide', 'http://www.', 'http://') AS Result;

Resultat:

+-----------------------+
| Result                |
+-----------------------+
| http://database.guide |
+-----------------------+

Detta skyddar mot att oavsiktligt ta bort en delsträng som inte bör tas bort. Till exempel, om vi har en webbadress som  http://bestwww.com , som av misstag skulle förvandlas till http://bestcom utan skyddet.

Samma skydd kan tillämpas i fall där du ersätter text (inte bara tar bort den). Till exempel detta:

SELECT REPLACE('Land of cats and dogs and sand', ' and ', ' or ') AS Result;

Resultat:

+------------------------------+
| Result                       |
+------------------------------+
| Land of cats or dogs or sand |
+------------------------------+

I det här fallet lade jag till ett mellanslag före och efter delsträngen och dess ersättningstext.

Om jag inte hade gjort det här, skulle jag ha slutat med det här:

SELECT REPLACE('Land of cats and dogs and sand', 'and', 'or') AS Result;

Resultat:

+----------------------------+
| Result                     |
+----------------------------+
| Lor of cats or dogs or sor |
+----------------------------+


  1. PostgreSQL:hur man installerar plpythonu-tillägget

  2. Hur man säkerhetskopierar eller skapar en ny tabell från befintlig SQL Server-tabell i SQL Server - SQL Server / TSQL Tutorial Del 105

  3. Hur återställer jag SqLite-databasen i Android?

  4. Hur kan jag använda en PostgreSQL-utlösare för att lagra ändringar (SQL-satser och radändringar)