我在MySQL中的存储过程有问题。我需要从PHP代码中调用它(我不能直接从代码中使用select)。该过程从表单接收参数,并且该参数可以是字符串或数字值(如果用户填充输入)或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 ;

最佳答案

试试看:

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 ;

关于php - mysql中的存储过程以使用可变参数进行选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18643826/

10-10 14:14
查看更多