Função de substituição de string do MySQL

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 REPLACEfunção é a seguinte:

REPLACE(str,old_string,new_string);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A REPLACEfunção possui três parâmetros. Ele substitui o old_stringpelo no new_stringno string

Observe que há uma instrução também chamada REPLACE usada para inserir ou atualizar dados. Você não deve confundir a REPLACEinstrução com a REPLACEfunção string.

A REPLACEfunçã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 REPLACEfunçã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 productstabela do banco de dados de exemplo , use a REPLACEfunçã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 abuote substitui-o pela palavra correta about na productDescriptioncoluna da products tabela.

É muito importante observar que na REPLACEfunçã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 REPLACEfunçã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

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *