Miren, me preguntaba si podrían ayudarme con un pequeño problema que tengo con las funciones en MySQL: resulta que da error cuando hago:
Código:
porque username es un argumento (argv[0] para ser más exactos) que le pasamos a la función, pero que MySQL da error al usar dentro de una consulta dentro de dicha función.set existe = ( select count(nombre) from intentos where nombre=username );
Esta es la tabla:
Código:
create table usuario ( nombre varchar(20) not null, edad tinyint not null ) engine=myisam; -- Es MyISAM porque voy a hacer muchos selects sobre esta tabla
Y aquí la función:
Código:
delimiter | create function miweb.edad_numero(username varchar(20)) returns tinyint begin declare existe tinyint; declare edad_num tinyint; set existe = ( select count(nombre) from intentos where nombre=username ); -- Si el usuario existe en la tabla o no if existe <> 0 -- Si existe de verdad (si count() no devuelve cero) set intentos_num = ( select edad from intentos where nombre=username ); else -- La edad por defecto son 18 set edad_num = 18; insert into usuario(nombre, edad) values(username, 18); end if; return edad_num; end |
Muchas gracias de antemano.