quinta-feira, abril 23, 2009

Retirar acentos de campos MySQL


Depois de muito pesquisar na net sobre como retirar acentos em campos do MySQL, consegui resolver meu problema com a seguinte query:

UPDATE tabela
set
campo = TRIM(UCASE(campo)),
campo = REPLACE(campo ,'Á','A'),
campo = REPLACE(campo ,'À','A'), 
campo = REPLACE(campo ,'Ã','A'),  
campo = REPLACE(campo ,'Â','A'),  
campo = REPLACE(campo ,'É','E'),  
campo = REPLACE(campo ,'È','E'),  
campo = REPLACE(campo ,'Ê','E'),  
campo = REPLACE(campo ,'Í','I'),  
campo = REPLACE(campo ,'Ì','I'),  
campo = REPLACE(campo ,'Î','I'),  
campo = REPLACE(campo ,'Ó','O'),  
campo = REPLACE(campo ,'Ò','O'),  
campo = REPLACE(campo ,'Ô','O'),  
campo = REPLACE(campo ,'Õ','O'),  
campo = REPLACE(campo ,'Ú','U'),  
campo = REPLACE(campo ,'Ù','U'),  
campo = REPLACE(campo ,'Û','U'),  
campo = REPLACE(campo ,'Ü','U'),  
campo = REPLACE(campo ,'Ç','C')

Obs. o primeiro replace transforma toda a string em maiúsculas e depois retira os espaços do início e do final da string.

Isso é somente o início, caso queira substituir outros caracteres basta adicioná-los na lista.

Espero que ajude.

Abraços.

4 comentários:

Joao Neto disse...

Muito obrigado. Ajudou-me muitíssimo. Ainda incluí alteração para trocar espaços em branco por sublinhado "_" e troquei também ucase por lcase já que uso linux.

Anônimo disse...

Ótimo!!!!!!!!!!

Luiz Sabiano disse...

Obrigado Amigo, código muito útil

paulo robson nobre da silva disse...

Muito bom resolveu mesmo o problema aqui diretamento no mysql, vlw e fique com Deus e não esquece de ler a bíblia pois tem o caminho da salvação