繁体   English   中英

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

[英]stored procedure in mysql to make a select with variable params

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM