Summary: neste tutorial, mostraremos como usar a função MySQL REPLACE string para substituir uma substring por outra numa string.
Introdução à função string MySQL REPLACE
MySQL fornece-lhe uma função de string útil chamada REPLACE
que lhe permite substituir uma string numa coluna de uma tabela por uma nova string.
A sintaxe do REPLACE
função é a seguinte:
Code language: SQL (Structured Query Language) (sql)REPLACE(str,old_string,new_string);
O REPLACE
função tem três parâmetros. Substitui o old_string
pelo new_string
no string
Notificação de que há uma declaração também chamada REPLACE utilizada para inserir ou actualizar dados. Não se deve confundir o REPLACE
declaração com o REPLACE
função string.
O REPLACE
função é muito útil para pesquisar e substituir texto numa tabela, tal como actualizar URL obsoleto, corrigir um erro ortográfico, etc.
A sintaxe de usar a função REPLACE
numa declaração UPDATE é a seguinte:
Code language: SQL (Structured Query Language) (sql)UPDATE tbl_name SET field_name = REPLACE(field_name, string_to_find, string_to_replace)WHERE conditions;
Nota que ao procurar texto a substituir, o MySQL usa a correspondência sensível a maiúsculas e minúsculas para efectuar uma pesquisa por uma cadeia de caracteres a ser substituída.
MySQL REPLACE string function example
Por exemplo, se quiser corrigir o erro ortográfico no products
tabela na base de dados de amostra, utilize a função REPLACE
como se segue:
Code language: SQL (Structured Query Language) (sql)UPDATE products SET productDescription = REPLACE(productDescription, 'abuot', 'about');
A consulta encontra todas as ocorrências de um erro ortográfico abuot
e substitui-a pela palavra correcta na tabela productDescription
coluna da tabela products
.
É muito importante notar que na função REPLACE
, o primeiro parâmetro é o nome da coluna sem aspas (“). Se colocar as aspas no nome do campo como “field_name”, a consulta actualizará o conteúdo dessa coluna para “field_name”, o que está a causar a perda inesperada de dados.
O REPLACE
função não suporta expressão regular, por isso se precisar de substituir uma cadeia de texto por um padrão, precisa de utilizar a função MySQL definida pelo utilizador (UDF) da biblioteca externa, verifique aqui MySQL UDF com Regex