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.