mysql在带参数的存储过程中使用prepare语句时出现语法错误
我有一个名为salesperson的表,其中包括id、姓名、职务等字段。我想使用存储过程和prepare语句选择职务匹配的所有记录。 下面是我的代码mysql在带参数的存储过程中使用prepare语句时出现语法错误,mysql,Mysql,我有一个名为salesperson的表,其中包括id、姓名、职务等字段。我想使用存储过程和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; d
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");
您可以使用以下存储过程:
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");
诚实地避免存储过程。它们很难调试,来自应用程序代码的直接查询也同样有效。您可以查看中的示例。提示:你不需要事先准备好的陈述。