Resumo : neste tutorial, mostraremos como usar a função de string REPLACE do MySQL para substituir uma substring por outra em uma string.
Introdução à função de string REPLACE do MySQL
O MySQL fornece uma função de string útil chamada REPLACE
que permite substituir uma string em uma coluna de uma tabela por uma nova string.
A sintaxe da REPLACE
função é a seguinte:
REPLACE(str,old_string,new_string);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A REPLACE
função possui três parâmetros. Ele substitui o old_string
pelo no new_string
no string
Observe que há uma instrução também chamada REPLACE usada para inserir ou atualizar dados. Você não deve confundir a REPLACE
instrução com a REPLACE
função string.
A REPLACE
função é muito útil para pesquisar e substituir texto em uma tabela, como atualizar URL obsoleto, corrigir um erro ortográfico, etc.
A sintaxe de uso da REPLACE
função em uma instrução UPDATE é a seguinte:
UPDATE tbl_name
SET
field_name = REPLACE(field_name,
string_to_find,
string_to_replace)
WHERE
conditions;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Observe que ao procurar por texto para substituir, o MySQL usa a correspondência com distinção entre maiúsculas e minúsculas para realizar uma busca por uma string a ser substituída.
Exemplo de função de string REPLACE do MySQL
Por exemplo, se você deseja corrigir o erro ortográfico na products
tabela do banco de dados de exemplo , use a REPLACE
função da seguinte forma:
UPDATE products
SET
productDescription = REPLACE(productDescription,
'abuot',
'about');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A consulta encontra todas as ocorrências de erro ortográfico abuot
e substitui-o pela palavra correta about na productDescription
coluna da products
tabela.
É muito importante observar que na REPLACE
função o primeiro parâmetro é o nome da coluna sem aspas (“). Se você colocar aspas no nome do campo, como “nome_campo”, a consulta atualizará o conteúdo dessa coluna para “nome_campo”, o que está causando perda inesperada de dados.
A REPLACE
função não suporta expressões regulares , então se você precisar substituir uma string de texto por um padrão, você precisa usar a função definida pelo usuário (UDF) do MySQL da biblioteca externa, confira aqui MySQL UDF com Regex