言寸

导航

mysql 5.7.20 动态sql 传入参数

drop procedure test;

delimiter ;;
CREATE procedure test()  
--  取动态sql的值  
-- 目前只测试出,在 where 后面, 可以用 ?,类似于 java的 preparestatement写法,
-- 表名,查询字段 是否可以也用? 代替,目前没有测试成功
begin DECLARE v_sqlcounts varchar(500); DECLARE recordcount varchar(500); set v_sqlcounts = concat('select * from test where id > ?'); set @sqlcounts := v_sqlcounts; #预处理动态SQL set @b=3; prepare stmt from @sqlcounts; #传递动态SQL内参数 execute stmt using @b; deallocate prepare stmt; #获取动态SQL语句返回值 SELECT @b; end ;; delimiter ; call test();

 

posted on 2019-05-10 11:07  言寸  阅读(4764)  评论(0编辑  收藏  举报