sql >> Databáze >  >> RDS >> Mysql

MySQL REPLACE() – Nahradí všechny instance podřetězce jiným řetězcem

MySQL REPLACE() Funkce umožňuje nahradit všechny výskyty podřetězce jiným řetězcem. Umožňuje vám například nahradit všechny výskyty jednoho slova jiným slovem atd.

Tento článek ukazuje jeho použití.

Syntaxe

Zde je návod, jak probíhá syntaxe:

REPLACE(str,from_str,to_str)

Kde str je řetězec, který obsahuje podřetězec/y. from_str je podřetězec, který chcete nahradit jiným řetězcem. A to_str je nový řetězec, který nahradí starý řetězec.

Příklad

Zde je základní příklad:

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

Výsledek:

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

V tomto případě jednoduše zaměníme slovo and se slovem or . Protože se toto slovo vyskytlo třikrát, všechny tři byly nahrazeny.

Rozlišování malých a velkých písmen

Je důležité si pamatovat, že REPLACE() funkce rozlišuje velká a malá písmena.

Příklad:

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

Výsledek:

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

V tomto případě pouze jedna instance cat byl nahrazen, protože pouze jedna instance měla správný případ. První instance měla velké C takže se to neshodovalo.

Odstranění dílčího řetězce

Podřetězec můžete také odstranit úplně, jednoduše nahrazením podřetězce prázdným řetězcem ('' ):

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

Výsledek:

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

Ochrana

Dalším (možná bezpečnějším) způsobem, jak toho dosáhnout, je zahrnout část okolního textu a poté odstranit nepotřebnou část:

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

Výsledek:

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

To chrání před nechtěným odstraněním podřetězce, který by neměl být odstraněn. Například pokud máme adresu URL jako  http://bestwww.com , což by se nechtěně změnilo na http://bestcom bez ochrany.

Stejné zabezpečení lze použít v případech, kdy nahrazujete text (nejen jej odstraňujete). Například toto:

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

Výsledek:

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

V tomto případě jsem přidal mezeru před a za podřetězec a jeho nahrazující text.

Kdybych to neudělal, skončil bych s tímto:

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

Výsledek:

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


  1. java.lang.OutOfMemoryError:[vyčerpání paměti] při čtení dat ze Sqlite Android

  2. Django cache.set() způsobuje chybu duplicitního klíče

  3. Indexování a další:GIN indexy

  4. Vytváření plánů údržby v SQL Server