MySQL存储过程中实现执行动态SQL语句的方法
本文实例讲述了MySQL存储过程中实现执行动态SQL语句的方法。分享给大家供大家参考。具体实现方法如下:
mysql> mysql> delimiter $$ mysql> mysql> CREATE PROCEDURE set_col_value -> (in_table VARCHAR(128), -> in_column VARCHAR(128), -> in_new_value VARCHAR(1000), -> in_where VARCHAR(4000)) -> -> BEGIN -> DECLARE l_sql VARCHAR(4000); -> SET l_sql=CONCAT_ws(' ', -> 'UPDATE',in_table, -> 'SET',in_column,'=',in_new_value, -> ' WHERE',in_where); -> SET @sql=l_sql; -> PREPARE s1 FROM @sql; -> EXECUTE s1; -> DEALLOCATE PREPARE s1; -> END$$ Query OK, 0 rows affected (0.00 sec)
希望本文所述对大家的MySQL数据库程序设计有所帮助。
相关推荐
-
MySQL存储过程中使用动态行转列
本文介绍的实例成功的实现了动态行转列.下面我以一个简单的数据库为例子,说明一下. 数据表结构 这里我用一个比较简单的例子来说明,也是行转列的经典例子,就是学生的成绩 三张表:学生表.课程表.成绩表 学生表 就简单一点,学生学号.学生姓名两个字段 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHAR(20) NOT NULL COMMENT '学生姓名', PRIMARY KEY (`
-
mysql 动态生成测试数据
一.问题 要生成两类数据: A类:两位的 01 02 03 ...09 10 11...19 20 21 ...98 99 另一类B类:三位的 100 101 102 ...110 111 112...998 999 二.解决办法 1.建表 复制代码 代码如下: CREATE TABLE `test`.`ta` ( `a` varchar(45) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 2.创建存储过程 复制代码 代码如下: DELIMITE
-
MySQL动态字符串处理DYNAMIC_STRING
MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING. 为了记录动态字符串的实际长度,缓冲区的最大长度,以及每次字符串需要调整时,及时分配新的内存,以及调整长度.MySQL使用了DYNAMIC_STRING来保存动态字符串相关的信息: typedef struct st_dynamic_string { char *str; size_t length, max_length, alloc_increment; } DYNAMIC_STRING; 在这个结构体中,
-
mysql 动态执行存储过程语句
下面写一个给大家做参考啊 复制代码 代码如下: create procedure sp_find(pfind varchar(500) BEGIN DECLAR msql varchar(2000); SET @MyQuery=Concat('select * from 表 where ',pfind); PREPARE msql from @MyQuery; EXECUTE msql; END 注意一点的就是MYSQL中有好多已经定义好的函数可以使用,比如上面的拼接函数Concat(),利用好
-
MySQL 存储过程中执行动态SQL语句的方法
drop PROCEDURE if exists my_procedure; create PROCEDURE my_procedure() BEGIN declare my_sqll varchar(500); set my_sqll='select * from aa_list'; set @ms=my_sqll; PREPARE s1 from @ms; EXECUTE s1; deallocate prepare s1; end;
-
MySQL动态创建表,数据分表的存储过程
复制代码 代码如下: BEGIN DECLARE `@i` int(11); DECLARE `@siteCount` int(11); DECLARE `@sqlstr` VARCHAR(2560); DECLARE `@sqlinsert` VARCHAR(2560); //以上声明变量 SELECT COUNT(0) into `@siteCount` FROM tbl_base_site; //计算表tbl_base_site的记录总条数 set `@i`=1; WHILE (`@i`-
-
MySQL存储过程中实现执行动态SQL语句的方法
本文实例讲述了MySQL存储过程中实现执行动态SQL语句的方法.分享给大家供大家参考.具体实现方法如下: mysql> mysql> delimiter $$ mysql> mysql> CREATE PROCEDURE set_col_value -> (in_table VARCHAR(128), -> in_column VARCHAR(128), -> in_new_value VARCHAR(1000), -> in_where VARCHAR(4
-
SQL SERVER 中构建执行动态SQL语句的方法
1 :普通SQL语句可以用exec执行 Select * from tableName exec('select * from tableName') exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL declare @fname varchar(20) set @fname = 'FiledName' --Select @fname from tableName
-
MyBatis 执行动态 SQL语句详解
大家基本上都知道如何使用 MyBatis 执行任意 SQL,使用方法很简单,例如在一个 XXMapper.xml 中: <select id="executeSql" resultType="map"> ${_parameter} </select> 你可以如下调用: sqlSession.selectList("executeSql", "select * from sysuser where enabled
-
thinkPHP框架中执行原生SQL语句的方法
本文实例讲述了thinkPHP框架中执行原生SQL语句的方法.分享给大家供大家参考,具体如下: 怎样在thinkphp里面执行原生的sql语句? $Model = new Model();//或者 $Model = D(); 或者 $Model = M(); $sql = "select * from `order`"; $voList = $Model->query($sql); 只是需要new一个空的模型继承Model中的方法. 注意query是查功能,execute是增删改
-
Laravel5.* 打印出执行的sql语句的方法
本文介绍了Laravel5.* 打印出执行的sql语句的方法,分享给大家,具体如下: 打开app\Providers\AppServiceProvider.PHP,在boot方法中添加如下内容 5.2以下版本 // 先引入DB use DB; // 或者直接使用 \DB:: DB::listen(function($sql, $bindings, $time) { dump($sql); }); 5.2及以上版本 use DB; // 或者直接使用 \DB:: // 只能接受一个参数 Query
-
获取django框架orm query执行的sql语句实现方法分析
本文实例讲述了获取django框架orm query执行的sql语句实现方法.分享给大家供大家参考,具体如下: 利用Django orM 可以很方便的写出很多查询,但有时候,我们需要检查这些利用 orM 生成的 SQL 语句是否正确,就需要检查这些ORM 生成的 原生的SQL 语句是否正确.经过测试有如下几种方法: 1. 通过数据库的跟踪日志,可以看到查询的语句,比如mysql 就可以配置把所有的 SQL 语句打印到日志中,但这种方式并不推荐,只是没有办法的时候才这么做. 2. 利用django
-
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
本文实例讲述了ThinkPHP3.2.3框架实现执行原生SQL语句的方法.分享给大家供大家参考,具体如下: [查询语句]query方法 示例:查询blog_article表中的文章标题title字段 //构造sql语句 $sql = "select `title` from blog_article"; //或者下面两种,都会自动读取当前设置的表前缀 //$sql = "select `title` from __PREFIX__article"; //$sql =
-
SQL Server中执行动态SQL
在Sql Server查询语句中使用变量表示表名.字段名等动态查询方式叫动态查询. 当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句,用得比较多的地方就是分页存储过程和执行搜索查询的SQL语句. 一个比较通用的分页存储过程,可能需要传入表名,字段,过滤条件,排序等参数,而对于搜索的话,可能要根据搜索条件判断来动态执行SQL语句. 在SQL Server中有两种方式来执行动态SQL语句,分别是sp_executesql和exec. sp_executesql相对
-
分享一下SQL Server执行动态SQL的正确方式
SQL Server执行动态SQL的话,应该如何实现呢?下面就为您介绍SQL Server执行动态SQL两种正确方式,希望可以让您对SQL Server执行动态SQL有更深的了解 动态SQL:code that is executed dynamically.它一般是根据用户输入或外部条件动态组合的SQL语句块.动态SQL能灵活的发挥SQL强大的功能.方便的解决一些其它方法难以解决的问题.相信使用过动态SQL的人都能体会到它带来的便利,然而动态SQL有时候在执行性能(效率)上面不如静态SQL,而
随机推荐
- seajs中模块的解析规则详解和模块使用总结
- Jquery选择器中使用变量实现动态选择例子
- jQuery页面加载初始化的3种方法(推荐)
- Oracle 数据库导出(exp)导入(imp)说明
- 原生JS获取元素的位置与尺寸实现方法
- 脚本div实现拖放功能(两种)
- Android提高之Activity+Intent用法示例
- php版微信公众平台实现预约提交后发送email的方法
- python使用htmllib分析网页内容的方法
- python中zip和unzip数据的方法
- php实现点击可刷新验证码
- js模糊查询实例分享
- JavaScript实现表格点击排序的方法
- javascript连续赋值问题
- php封装的page分页类完整实例
- 详解如何较好的使用js
- ASP也使用ORM,给ASP上所有的SQL注入画上句号
- 跟我学习JScript的Bug与内存管理
- 深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
- 拨号网络的简单知识