O
REPLACE()
do MySQL A função permite substituir todas as ocorrências de uma substring por outra string. Ele permite que você faça coisas como substituir todas as ocorrências de uma palavra por outra, etc. Este artigo demonstra seu uso.
Sintaxe
Veja como fica a sintaxe:
REPLACE(str,from_str,to_str)
Onde
str
é a string que contém a substring/s. from_str
é a substring que você deseja substituir por outra string. E to_str
é a nova string que substituirá a string antiga. Exemplo
Segue um exemplo básico:
SELECT REPLACE('Cats and dogs and cats and rabbits', 'and', 'or') AS Result;
Resultado:
+---------------------------------+ | Result | +---------------------------------+ | Cats or dogs or cats or rabbits | +---------------------------------+
Neste caso, simplesmente trocamos a palavra
and
com a palavra or
. Como houve três ocorrências dessa palavra, todas as três foram substituídas. Sensibilidade a maiúsculas e minúsculas
É importante lembrar que o
REPLACE()
função diferencia maiúsculas de minúsculas. Exemplo:
SELECT REPLACE('Cats and dogs and cats and rabbits', 'cat', 'flea') AS Result;
Resultado:
+-------------------------------------+ | Result | +-------------------------------------+ | Cats and dogs and fleas and rabbits | +-------------------------------------+
Neste caso, apenas uma instância de
cat
foi substituído, porque apenas uma instância tinha o caso certo. A primeira instância tinha um C
maiúsculo então não combinou. Remover uma substring
Você também pode remover uma substring completamente, simplesmente substituindo a substring pela string vazia (
''
):SELECT REPLACE('http://www.database.guide', 'www.', '') AS Result;
Resultado:
+-----------------------+ | Result | +-----------------------+ | http://database.guide | +-----------------------+
Uma Salvaguarda
Outra maneira (talvez mais segura) de fazer isso é incluir parte do texto ao redor e remover a parte desnecessária:
SELECT REPLACE('http://www.database.guide', 'http://www.', 'http://') AS Result;
Resultado:
+-----------------------+ | Result | +-----------------------+ | http://database.guide | +-----------------------+
Isso evita a remoção inadvertida de uma substring que não deve ser removida. Por exemplo, se tivermos um URL como
http://bestwww.com
, que inadvertidamente se transformaria em http://bestcom
sem a salvaguarda. A mesma proteção pode ser aplicada nos casos em que você está substituindo o texto (não apenas removendo-o). Por exemplo, isso:
SELECT REPLACE('Land of cats and dogs and sand', ' and ', ' or ') AS Result;
Resultado:
+------------------------------+ | Result | +------------------------------+ | Land of cats or dogs or sand | +------------------------------+
Nesse caso, adicionei um espaço antes e depois da substring e seu texto de substituição.
Se eu não tivesse feito isso, eu teria acabado com isso:
SELECT REPLACE('Land of cats and dogs and sand', 'and', 'or') AS Result;
Resultado:
+----------------------------+ | Result | +----------------------------+ | Lor of cats or dogs or sor | +----------------------------+