Más funciones de mysql

Determinar si una cadena es o no vocal:

CREATE FUNCTION `esvocal`(cadena char(1)) 
RETURNS tinyint(1)
BEGIN


RETURN lcase(cadena) regexp '[aeiou]';
END

Contar las vocales de una cadena:

CREATE 
FUNCTION `vocales`(cadena varchar(100)) 
RETURNS int(11)
BEGIN

declare total,cont int default 0;

while cont<length(cadena) do
set cont=cont+1;

if esvocal(substring(cadena,cont,1)) then
 set total=total+1;
end if;

end while;

RETURN total;
END

Cambiar las vocales a mayúsculas y el resto a minúsculas:

CREATE 
FUNCTION `texto_molon`(cadena varchar(100)) 
RETURNS varchar(100) 
BEGIN
declare cont int default 1;
declare res varchar(100) default '';
declare c varchar(1);
while cont<length(cadena) do
set c=substring(cadena,cont,1);
if esvocal(c) then
 set res=concat(res,ucase(c));
 else
 set res=concat(res,lcase(c));
end if;

set cont=cont+1;
end while;
RETURN res;
END