Amigo espero te funcione esto, estaba aburrido y me puse a hacerlo, saludos.
Código:
#set @fechaNac = '2013-01-01';
#set @fechaNac = '2012-05-07';
set @fechaNac = '1985-05-07';
select case
when ((YEAR(CURDATE())-YEAR(@fechaNac))-(RIGHT(CURDATE(),5)<RIGHT(@fechaNac,5)))>0
then concat(((YEAR(CURDATE())-YEAR(@fechaNac))-(RIGHT(CURDATE(),5)<RIGHT(@fechaNac,5))), ' años')
when ((MONTH(CURDATE())-MONTH(@fechaNac))-(RIGHT(CURDATE(),2)<RIGHT(@fechaNac,2)))<0
then concat(((MONTH(CURDATE())-MONTH(@fechaNac))-(RIGHT(CURDATE(),2)<RIGHT(@fechaNac,2))) + 12, ' meses')
when (DAY(CURDATE()-DAY(@fechaNac)))<31
then concat((DAY(CURDATE()-DAY(@fechaNac))), ' días')
end AS dato;
lo puedes correr directamente en mysql.