Olá, pessoal.
Faz tempo que não posto aqui, mas saibam que não é desleixo. O tempo vai atropelando tudo e acaba não deixando sobra para o blog.
Bom, hoje eu venho aqui postar uma dica de SQL muito interessante, que resolve um problema que eu me deparei hoje.
O cenário foi o seguinte: eu tenho uma tabela de bairros, contendo os campos básicos (Id, Nome e Id da cidade).
Acontece que, devido a vários problemas, tive que eliminar a acentuação dos registros. Fiz tudo manualmente no script que eu tinha arquivado no HD, porém acabei esquecendo de substituir os “Ç” (ce-cedilha) – e só descobri isso no decorrer do desenvolvimento, quando já havia uma massa de dados no banco.
Eu tinha duas opções para escolha:
- Limpar todo o banco e rodar meus scripts novamente – e perder as personalizações que já havia feito
- Encontrar alguma maneira de atualizar TODAS as ocorrências de “Ç” na tabela, de uma única vez
Optei pela 2ª alternativa, pois eu realmente não estava afim de limpar o banco e rodar tudo de novo.
Após alguma pesquisa e uma pequena pausa para um copo de iogurte, consegui chegar ao código abaixo:
UPDATE tabela1 INNER JOIN tabela2 ON tabela1.campo1 = tabela2.campo1 SET tabela1.campo2 = tabela2.campo2
Para que este comando funcione, dois requisitos devem ser observados:
- Esta operação somente pode ser feita entre duas tabelas. Se um dos lados for uma view, não funcionará.
- Os tipos dos dois campos (de referência e de igualdade) devem ser iguais em ambas as tabelas.
Nem preciso dizer que é necessário que os campos de comparação devem ter um equivalente em cada lado, para que o JOIN traga resultados de referência, não é? =)
Espero que seja útil!
Abraços.
| Ofertas Relacionadas | ![]() Tablet Coby 7015 4gb Memoria Android 2.1 Kyros Wifi Gratis Mais info» R$ 269.00 até 18x de 20.18 | ![]() Novo Tablet Coby Kyros 7020 Câmera Android 2.2 Wifi 4gb Mais info» R$ 299.00 até 18x de 22.43 | ![]() Tablet Kyros Android 2.1 Coby Mid7015 E Book Tela 7.0 Mais info» R$ 269.00 até 18x de 20.18 |
|---|





