昨天一朋友说在MYSQL存储过程里怎么输入参数
如:
select * from table_name t where t.field1 in (1,2,3,4,...);
网上找了老半天,参数还是不会传进去。
后来想到ORACLE 里面可以拼SQL
然后将拼完的SQL再进行执行
今天终于搞定了
实现这种效果
还是选贴段代码吧
DROP PROCEDURE IF EXISTS photography.Proc_Test; CREATE PROCEDURE photography.`Proc_Test`(param1 varchar(1000)) BEGIN set @id = param1; set @sel = 'select * from access_record t where t.ID in ('; set @sel_2 = ')'; set @sentence = concat(@sel,@id,@sel_2); -- 连接字符串生成要执行的SQL语句 prepare stmt from @sentence; -- 预编释一下。 “stmt”预编释变量的名称, execute stmt; -- 执行SQL语句 deallocate prepare stmt; -- 释放资源 END;
执行结果如图所示: