当前位置:网站首页>mysql 存储过程 动态参数 查询执行结果
mysql 存储过程 动态参数 查询执行结果
2022-08-03 05:10:00 【lhorse003】
mysql function & procedure 学习使用小结:
1、动态sql, 即动态参数:
在存储过程中,想要直接用表名变量做参数,动态执行sql,不能直接写
1 2 3 4 5 6 7 | create procedure ( $tableName char(20) )BEGINselect * from tableName;END |
mysql 不支持表名作为变量,这样会直接将变量名“tableName”作为表名去查询,解决的方法是:
1 2 3 4 5 6 7 8 9 10 11 | BEGIN SET @sql = concat('select * from ', $tableName); PREPARE stmt1 FROM @sql; EXECUTE stmt1; DEALLOCATE PREPARE stmt1;END; |
2 得到动态sql, select查询的结果:
可以直接 在sql 语句中 得到, "select * into @var" 就行了,后边就可以直接运用该变量了。
例子:
1 2 3 4 5 6 7 | SET @sql = concat('select max(id) into @max_id from ', $tableName);PREPARE stmt1 FROM @sql;EXECUTE stmt1;DEALLOCATE PREPARE stmt1; |
此时,@max_id 就保存了查询结果。
参考链接:http://jonllen.javaeye.com/blog/370343
http://topic.csdn.net/u/20100402/00/b13c3d37-2f06-48d2-99c8-697f8a75e441.html
http://hi.baidu.com/annleecn/blog/item/794e3efbf2525a809e514696.html
附上一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | DROP PROCEDURE IF EXISTS get_service_id;DELIMITER $$CREATE PROCEDURE get_service_id( IN $tableName varchar(25), IN $beginDate varchar(25)) SET @sql = concat('select id into @mainId from ', $tableName , ' where date_time>=\"', $beginDate, '\" order by date_time limit 1'); PREPARE stmt1 FROM @sql; EXECUTE stmt1; DEALLOCATE PREPARE stmt1; END;$$DELIMITER ; |
边栏推荐
猜你喜欢

Jmeter 模拟多用户登录的两种方法

UV decomposition of biotin - PEG2 - azide | CAS: 1192802-98-4 biotin connectors

【Biotin Azide|cas:908007-17-0】Price_Manufacturer

在树莓派上搭建属于自己的网页(1)

shell脚本循环语句

typescript44-对象之间的类兼容器

Build your own web page on raspberry pie (1)

Build your own web page on the Raspberry Pi (2)

Kotlin-Flow常用封装类:StateFlow的使用

Tributyl-mercaptophosphane "tBuBrettPhos Pd(allyl)" OTf), 1798782-17-8
随机推荐
生活原则。
【Harmony OS】【ArkUI】ets开发 基础页面布局与数据连接
Interface testing framework of actual combat (2) | interface request assertion
js implements a bind function
【 Harmony OS 】 【 ano UI 】 lightweight data storage
typescript45-接口之间的兼容性
JS底层手写
13.
lt.647. Palindromic substring + lt.516. Longest palindrome subsequence Build your own web page on the Raspberry Pi (2)
安装IIS服务(Internet信息服务(Internet Information Services,简写IIS,互联网信息服务)
4.如何避免缓存穿透、缓存击穿、缓存雪崩
Flink状态
1059 C语言竞赛 (20 分)(C语言)
User password encryption tool
Ali cloud object storage oss private barrels to generate links
Interface Test Framework Practice | Process Encapsulation and Test Case Design Based on Encrypted Interface
[Fine talk] Using native js to implement todolist
2022/08/02 Study Notes (day22) Multithreading
Flink state
PotPlayer实现上班摸鱼电视自由