关闭

mysql存储过程中sql的拼接

标签: mysql存储过程变量拼接
3943人阅读 评论(0) 收藏 举报
分类:
使用“like”
CREATE procedure pro_sql_data(in sear_name  varchar(2000))  
BEGIN   
declare vid bigint(20);
if sear_name is not null and sear_name!='' then
select ad_place_id into vid from ad_place where name like concat('%',sear_name,'%');
end if;
...
END$$


使用“=”
CREATE procedure pro_sql_data(in sear_name  varchar(2000))  
BEGIN   
declare vid bigint(20);
if sear_name is not null and sear_name!='' then
select ad_place_id into vid from ad_place where name =sear_name;
end if;
...
END$$


在游标中使用变量
CREATE procedure pro_sql_data(in combineId  bigint(20))  
BEGIN   
declare vid bigint(20);
-- 定义游标
DECLARE rs_cursor CURSOR FOR select type,object_id from combine_code_normal where combine_id=combineId;
...
END$$


在动态sql中使用
CREATE procedure pro_sql_data(in qfs  varchar(20),in ids  varchar(20))  
BEGIN   
declare sql1 varchar(2000);
set sql1 = concat('select name  into @colsTmp from dd_report_query_fields e where e.status!=-1 and table_id in (',ids,')');
if qfs is not null and qfs !='' THEN
set sql1 = concat(sql1,' and (e.type=2 and e.table_id in (',qfs,')) ');
end if;

set @ms=sql1;
PREPARE s1 from @ms;
EXECUTE s1;
deallocate prepare s1; 
set colsStr = @colsTmp;
...
END$$
0
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

写MySQL存储过程实现动态执行SQL

--存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数 create procedure p_procedurecode(in sumdate varchar(...
  • ybhjx
  • ybhjx
  • 2015-12-24 11:38
  • 7536

oracle 动态SQL在存储过程中的使用

1、      静态SQL和动态SQLOracle编译PL/SQL程序块分为两个种(其它SQL代码块包括存储过程也是如此):其一为前期联编(early binding),即SQL语句在程序编译期间就已...
  • mchdba
  • mchdba
  • 2016-07-24 01:03
  • 3343

Oracle 存储过程及函数中游标+动态的sql处理

我们在实际的项目开发过程中,经常会遇到类似的情况:要求在不同的数据库表分块中,查询某些字段的数据信息并按照字符串的方式显示出来,如何解呢?         游标+动态sql的方式无疑是最好的解答;首先...
  • sevenkj
  • sevenkj
  • 2015-11-05 13:27
  • 2587

MySQL存储过程中使用动态SQL与静态SQL的区别

存储过程中使用动态SQL 实例 DELIMITER $$ DROP PROCEDURE IF EXISTS `test`.`t1`$$ CREATE /*[DEFINER = { us...
  • mchdba
  • mchdba
  • 2013-11-12 11:03
  • 9204

MySQL存储过程中使用动态SQL与静态SQL的区别

存储过程中使用动态SQL 实例[sql] view plain copy print?DELIMITER $$ DROP PROCEDURE IF EXISTS `test`.`t1`$$ ...
  • will5451
  • will5451
  • 2016-12-12 17:17
  • 434

存储过程中拼接SQL语句

很多时候我们需要利用参数在存储过程中重新组织SQL语句,在存储过程中拼接的SQL语句只是一个字符串,不会被直接执行,所以加一个execute执行它就可以了。具体看如下演示代码:   代码: ...
  • yangyuankp
  • yangyuankp
  • 2012-01-18 09:59
  • 12324

存储过程中怎么动态执行sql语句

  • 2011-12-22 22:19
  • 1KB
  • 下载

在SQL存储过程中进行参数数组Array Parameter的处理函数

  • 2008-09-29 15:57
  • 2KB
  • 下载

SQL存储过程,触发器讲解及过程中要注意的内容

  • 2011-08-28 12:25
  • 2.13MB
  • 下载

Hive存储过程HQL/SQL(二)– 在Hive存储过程中读写MySQL表

关键字:Hive存储过程、PL/HQL、HQL/SQL、MySQL 通过PL/HQL可以在一个脚本中同时访问多个数据库系统。在实际业务场景中,经常会有需要将Hive和RDBMS中的数据结合分析,...
  • thy822
  • thy822
  • 2017-05-17 18:59
  • 172
    个人资料
    • 访问:1805243次
    • 积分:20671
    • 等级:
    • 排名:第451名
    • 原创:609篇
    • 转载:788篇
    • 译文:4篇
    • 评论:73条
    技术交流
    域名出售
    www.importnew.cn
    www.jinrimiantiao.com
    文章分类
    最新评论