Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL REPLACE() – zamień wszystkie wystąpienia podciągu na inny ciąg

MySQL REPLACE() funkcja umożliwia zastąpienie wszystkich wystąpień podciągu innym ciągiem. Pozwala na takie rzeczy, jak zastąpienie wszystkich wystąpień jednego słowa innym słowem itp.

Ten artykuł pokazuje jego użycie.

Składnia

Oto jak działa składnia:

REPLACE(str,from_str,to_str)

Gdzie str jest ciągiem zawierającym podciąg/i. from_str jest podciągiem, który chcesz zastąpić innym ciągiem. I to_str to nowy ciąg, który zastąpi stary.

Przykład

Oto podstawowy przykład:

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

Wynik:

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

W tym przypadku po prostu zamieniamy słowo and ze słowem or . Ponieważ wystąpiły trzy wystąpienia tego słowa, wszystkie trzy zostały zastąpione.

Rozróżnianie wielkości liter

Należy pamiętać, że REPLACE() funkcja rozróżnia wielkość liter.

Przykład:

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

Wynik:

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

W tym przypadku tylko jedno wystąpienie cat został wymieniony, ponieważ tylko jedna instancja miała właściwy przypadek. Pierwsza instancja miała wielkie litery C więc to się nie zgadzało.

Usuń podciąg

Możesz również całkowicie usunąć podciąg, po prostu zastępując podciąg pustym ciągiem ('' ):

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

Wynik:

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

Ochrona

Innym (być może bezpieczniejszym) sposobem na zrobienie tego jest uwzględnienie części otaczającego tekstu, a następnie usunięcie niepotrzebnej części:

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

Wynik:

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

Chroni to przed przypadkowym usunięciem podciągu, którego nie należy usuwać. Na przykład, jeśli mamy adres URL, taki jak  http://bestwww.com , który przypadkowo zmieni się w http://bestcom bez zabezpieczenia.

To samo zabezpieczenie można zastosować w przypadkach, gdy zastępujesz tekst (a nie tylko go usuwasz). Na przykład to:

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

Wynik:

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

W tym przypadku dodałem spację przed i po podłańcuchu oraz jego zastępczym tekście.

Gdybym tego nie zrobił, skończyłbym z tym:

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

Wynik:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wykryć, czy wartość zawiera co najmniej jedną cyfrę w MySQL?

  2. PHP PDO - liczba wierszy

  3. Jak działa samodołączanie MYSQL?

  4. Jak zatrzymać/uruchomić MySQL za pomocą MySQL Workbench

  5. Zamów według COUNT za wartość