gtxyzz

mysql 5.7.20 动态sql 传入参数

gtxyzz 批处理 2023-02-27 905浏览 0
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();

 

继续浏览有关 数据库技术文章/教程 的文章
发表评论