sql >> Database teknologi >  >> RDS >> Mysql

MySQL REPLACE() – Erstat alle forekomster af en understreng med en anden streng

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


  1. Avanceret MySql-forespørgsel:Opdater tabel med info fra en anden tabel

  2. PHP &MySQL sideinddeling

  3. Datavisualisering ved hjælp af Apache Zeppelin – Tutorial

  4. Hvordan IKKE RLIKE virker i MariaDB