在带有参数的存储过程中使用prepare语句时,mysql中出现语法错误

时间:2018-09-12 09:33:29

标签: mysql

我有一个名为salesperson的表,其中包含id,name,jobtitle等字段。我想使用存储过程和prepare语句选择职位匹配的所有记录。 这是下面的代码。

delimiter $
create procedure pro9(a varchar(25))
declare job varchar(25);
set job = a;
begin
prepare st0 from 'select * from salesperson where jobtitle = job;';
execute st0;
deallocate prepare st0;
end$
delimiter ;
call pro9("salesman");

1 个答案:

答案 0 :(得分:0)

您可以使用以下存储过程:

DROP PROCEDURE IF EXISTS `salesdata`;
DELIMITER //

CREATE PROCEDURE SALESDATA (JOB_TITLE varchar(30))
BEGIN

    SELECT s.* 
      FROM salesperson s
     WHERE s.jobtitle = JOB_TITLE;

END //

DELIMITER ;

call SALESDATA("salesman");