O MySQL tem uma função que permite percorrer todos os dados de uma tabela procurando por palavras ou caracteres correspondentes e substituí-los automaticamente por um novo valor usando SQL.
Estamos falando da função REPLACE() do MySQL que é bem fácil de usar e extremamente útil quando se há necessidade de procurar e substituir uma cadeia de texto que afeta muitos registros ou linhas de uma tabela, como no caso de mudança de nome de uma empresa, código postal, URL ou correção de erros ortográficos.
O replace pode ser usado para fazer selects e updates dentro das tabelas, vejam os exemplos:
Select:
SELECT REPLACE( string, ‘string_velha’, ‘string_nova’ ) as string FROM tabela_teste
Update:
UPDATE tabela_teste set campo_teste = replace(campo_teste,’string_velha’,’string_nova’)
Muito boa dica! Obrigado.
Olá Ivanilton, estou tentando usar o comando REPLACE porém ele substitui o conteúdo, ou seja… preciso que resultados 0 sejam -1 porém onde está com valores 10, 20 ou 30 gera resultado como 1-1 2-1 3-1….
Qual a dica que você me dá?
COMANDO USADO:
select products_id, products_name, products_price, REPLACE(products_quantity,’0′,’-1′) AS products_quantity from $table
Obrigado!
Oi Allan, você quer apenas construir uma consulta ou atualizar a tabela?
Olá Ivanilton, seria somente uma consulta para criar um arquivo CSV.
Agora entendi… Bem, o comando replace trabalha com strings, do jeito que vc fez sua consulta o normal é justamente isso, todos zeros serão substituídos por ‘-1’ ao menos que você crie uma cláusula que exclua os campos que você não quer que sejam modificados.
Acrescente uma clausula Where no final, restringindo a aplicação do replace na tebela.. ficaria assim…
select products_id, products_name, products_price, REPLACE(products_quantity,’0′,’-1′) AS products_quantity from $table
where products_quantity = 0