mysql中的存储过程使用变量参数进行选择

时间:2013-09-05 18:51:54

标签: php mysql sql stored-procedures

我在MySQL中遇到存储过程问题。我需要从PHP代码中调用它(我不能直接使用代码中的select)。该过程从表单接收参数,并且参数可以是字符串或数值(如果用户填写输入)o null(如果用户将输入留空)。

我制作了这段代码,但它不起作用(程序和变量名都是西班牙语)并且没有显示任何错误。

DELIMITER $$

CREATE PROCEDURE ps_BusquedaVarParam
    (IN nombre varchar(30), apellidos varchar(50), minEdad int, maxEdad int)
BEGIN
  SELECT * FROM alumnos WHERE 
(nombre is null or Nombre = nombre) and 
(apellidos is null or Apellido = apellidos) and 
(minEdad is null or Edad>=minEdad) and 
(maxEdad is null or Edad<=maxEdad);
END $$

DELIMITER ;

1 个答案:

答案 0 :(得分:2)

试试:

DELIMITER $$

CREATE PROCEDURE ps_BusquedaVarParam(nombre_in varchar(30), apellidos_in varchar(50), minEdad_in int, maxEdad_in int)
BEGIN
 SELECT * FROM alumnos WHERE 
(nombre_in is null or Nombre = nombre_in) 
and (apellidos_in is null or Apellido = apellidos_in) 
and (minEdad_in is null or Edad>=minEdad_in) 
and (maxEdad_in is null or Edad<=maxEdad_in);
END $$

DELIMITER ;