Function em MySQL para remover acentos

Acabei de desenvolver uma Function com o MySQL para remover acentos muito útil para criação de URL Amigáveis, ela esta bem simples removendo apenas os caracteres com acentos mas é bem fácil de modificá-la de acordo com a necessidade.

Bom, aqui esta o código

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DELIMITER //
CREATE FUNCTION Func_Remove_Acentos(Texto VARCHAR(150))
RETURNS VARCHAR(150)
NOT DETERMINISTIC
BEGIN
DECLARE Acentos, SemAcentos, Resultado VARCHAR(150);
DECLARE Cont INT;

SET Acentos = 'ÀÂÊÔÎÛÃÕÁÉÍÓÚÇÜ';
SET SemAcentos = 'AAEOIUAOAEIOUCU';
SET Cont = CHAR_LENGTH(Texto);
SET Resultado = UPPER(Texto);

WHILE Cont > 0 DO
SET Resultado = REPLACE(Resultado, SUBSTRING(Acentos, Cont, 1), SUBSTRING(SemAcentos, Cont, 1));
SET Cont = Cont - 1;
END WHILE;

RETURN LOWER(Resultado);
END
//

Para testar basta fazer a chamada no SQL

1
SELECT Func_Remove_Acentos('São Paulo');

Espero ter ajudado. Até a próxima.