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 | +----------------------------+