MySQL REPLACE()
funktionen giver dig mulighed for at erstatte alle forekomster af en understreng med en anden streng. Det giver dig mulighed for at gøre ting som at erstatte alle forekomster af et ord med et andet ord osv.
Denne artikel demonstrerer dens brug.
Syntaks
Sådan går syntaksen:
REPLACE(str,from_str,to_str)
Hvor str
er den streng, der indeholder understrengen/erne. from_str
er den understreng, du vil erstatte med en anden streng. Og to_str
er den nye streng, der vil erstatte den gamle streng.
Eksempel
Her er et grundlæggende eksempel:
SELECT REPLACE('Cats and dogs and cats and rabbits', 'and', 'or') AS Result;
Resultat:
+---------------------------------+ | Result | +---------------------------------+ | Cats or dogs or cats or rabbits | +---------------------------------+
I dette tilfælde bytter vi blot ordet and
med ordet or
. Fordi der var tre forekomster af det ord, blev alle tre erstattet.
Stilling af sager
Det er vigtigt at huske, at REPLACE()
funktionen skelner mellem store og små bogstaver.
Eksempel:
SELECT REPLACE('Cats and dogs and cats and rabbits', 'cat', 'flea') AS Result;
Resultat:
+-------------------------------------+ | Result | +-------------------------------------+ | Cats and dogs and fleas and rabbits | +-------------------------------------+
I dette tilfælde kun én forekomst af cat
blev udskiftet, fordi kun én instans havde den rigtige sag. Den første instans havde et stort C
så det passede ikke.
Fjern en understreng
Du kan også fjerne en understreng helt, blot ved at erstatte understrengen med den tomme streng (''
):
SELECT REPLACE('http://www.database.guide', 'www.', '') AS Result;
Resultat:
+-----------------------+ | Result | +-----------------------+ | http://database.guide | +-----------------------+
En beskyttelse
En anden (måske mere sikker) måde at gøre dette på er at inkludere noget af den omgivende tekst og derefter fjerne den unødvendige del:
SELECT REPLACE('http://www.database.guide', 'http://www.', 'http://') AS Result;
Resultat:
+-----------------------+ | Result | +-----------------------+ | http://database.guide | +-----------------------+
Dette beskytter mod utilsigtet fjernelse af en understreng, der ikke bør fjernes. For eksempel, hvis vi har en URL som http://bestwww.com
, som utilsigtet ville blive til http://bestcom
uden beskyttelse.
Den samme beskyttelse kan anvendes i tilfælde, hvor du erstatter tekst (ikke blot fjerner den). For eksempel dette:
SELECT REPLACE('Land of cats and dogs and sand', ' and ', ' or ') AS Result;
Resultat:
+------------------------------+ | Result | +------------------------------+ | Land of cats or dogs or sand | +------------------------------+
I dette tilfælde tilføjede jeg et mellemrum før og efter understrengen og dens erstatningstekst.
Hvis jeg ikke havde gjort dette, ville jeg være endt med dette:
SELECT REPLACE('Land of cats and dogs and sand', 'and', 'or') AS Result;
Resultat:
+----------------------------+ | Result | +----------------------------+ | Lor of cats or dogs or sor | +----------------------------+