2019独角兽企业重金招聘Python工程师标准>>>

对于存储过程或者函数,有时有这样的一个需求,传递一个参数,输出一个结果。如:我传递一个账号,返回这个账号所拥有的权限。但是如果这个需求改了,我要传递少量的复数个账号,获取这些账号权限,但是账号的个数不限定,则此时需要用关键字IN,并将账号集合传递给存储过程或函数。实现的过程如下: 对表oasys_dept,有如下的数据:

需要输入参数id(INT形式),调用存储过程得到结果。 MYSQL实现(使用方法find_in_set):

DELIMITER $$
CREATE PROCEDURE query_company(IN cname_in VARCHAR(100), OUT result_out INT)
BEGINSELECT count(*) INTO result_out FROM oasys_dept where find_in_set(id, cname_in);
END
$$
DELIMITER ;

调用存储过程

set @ids='1,2';
set @recordcount=0;
CALL query_company(@ids, @recordcount);
SELECT @recordcount;

结果:

这里id是INT类型的,那如果换成字符串类型,我是不是需要像sqlserver一样传递'key1','key2'这样带有多对单引号格式的参数呢?这里把参数由主键集合改成dept_name集合试试:

DELIMITER $$
CREATE PROCEDURE query_company(IN cname_in VARCHAR(100), OUT result_out INT)
BEGINSELECT count(*) INTO result_out FROM oasys_dept where find_in_set(dept_name, cname_in);
END
$$
DELIMITER ;

调用存储过程:

set @ids='家里蹲有限公司,野鸡公司';
set @recordcount=0;
CALL query_company(@ids, @recordcount);
SELECT @recordcount;

效果一样。也就是说,实际操作的时候,不需要传递'key1','key2'这样格式的参数给存储过程,而是'key1,key2'这样的格式,这种形式似乎与sqlserver略不同。

转载于:https://my.oschina.net/u/4108765/blog/3059533

mysql where in形式存储过程如何传递带有单引号的入参相关推荐

  1. MySQL数据库与Oracle数据库中建表使用单引号和双引号的效果

    一.Oracle数据库,使用单引号和双引号,以及不使用引号的区别 1.不使用引号,创建一个新表 -- 如果不使用引号,则表名和字段会自动转换成大写 create table Tatoo_Test(Na ...

  2. sql中插入带有单引号的数据

    字符串数据是用单引号包在外面的,如果插入的数据中包含单引号,就需要再做处理 可以将单引号替换成两个单引号,在sql中连续两个单引号就表示一个单引号字符 举例如下: insert into A(a1,a ...

  3. MySQL中 反引号、单引号 和 双引号 的区别

    MySQL中反引号(``).单引号('')和双引号("")的区别 反引号(``) 即电脑 esc 正下方那个键,它是为了区分MySQL的保留字与普通字符而引入的符号.一般我们建表时 ...

  4. 图解MySql命令行创建存储过程

    一 操作实例 首先登录mysql: 使用source命令,从命令行执行sql脚本,创建表: 创建第一个存储过程: 事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";&q ...

  5. 超详细图解!【MySQL进阶篇】存储过程,视图,索引,函数,触发器

    超详细图解![MySQL进阶篇]存储过程,视图,索引,函数,触发器 1.1 下载Linux 安装包 1.2 安装MySQL 1.3 启动 MySQL 服务 1.4 登录MySQL 2\. 索引 2.1 ...

  6. mysql在php中存储过程写法

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  7. MySQL(六)——存储过程和存储函数

    前言 今天简单的介绍一下"存储函数"和"存储过程",平时在工作中用到的时间不多,时间长了难免会忘记.在这里简单的做个回忆总结,方便自己以后复习回忆,当然能帮到需 ...

  8. mysql自定义函数、存储过程、游标、触发器、事件(定时任务)

    创建函数FUN_GET_ORG_CHILD(rootId) CREATE FUNCTION `FUN_GET_ORG_CHILD`(rootId varchar(100))RETURNS varcha ...

  9. MySQL(视图、存储过程与函数、流程控制、触发器)

    第一章 视图 1 什么是视图 为了提高复杂的SQL语句的复用性和表的操作的安全性 ,MySQL数据库管理系统提高了视图特性,所谓视图,本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的列和 ...

最新文章

  1. html传參中?和amp;
  2. RocketMQ 实战 集群监控平台搭建
  3. 报告 | 2017年云商业智能市场分析:云计算比大数据更重要
  4. python cms应用生成_Django CMS应用程序H教程
  5. 功率放大器的有记忆失真特性
  6. java.lang.IllegalStateException: ViewStub must have a non-null ViewGroup viewParent
  7. 计算机网络与云计算研究背景,基于云计算背景下的计算机网络安全研究
  8. FPGA图案--数字表示(代码+波形)
  9. html json to table,javascript - HTML - Convert json to table - Stack Overflow
  10. ajax请求数据 ztree_ajax 异步获取数据填充到表格显示(ajax) 文档(Options API) DataTables中文网...
  11. python能开发android吗_python可以开发安卓吗
  12. Zigbee 学习计划——第2天——熟悉CC2530的基本例程
  13. W806开发板环境搭建
  14. 以下哪些不是Linux操作系统特点,[多选] Linux操作系统具有以下()特点。
  15. 下一代英伟达H100 GPU发布时,国产芯片能追上吗?
  16. 【设计模式11】备忘录和解释器模式 SpelExpressionParser
  17. 安卓四大组件之广播组件(Broadcast)
  18. Arduino 常用函数参考文档
  19. mysql中varbinary什么意思_MySQL中的数据类型binary和varbinary详解
  20. uniapp onReachBottom 触底事件

热门文章

  1. sublime3怎么设置中文很简单
  2. ChatGPT的悄然问世,让原先“吃香”的10种“铁饭碗”快要端不住了:软件技术类、新闻媒体类、法律工作类、市场研究分析师、教师、金融分析类、交易员、平面设计师、会计师、客服人员。
  3. leetcode笔记 844比较含退格的字符串 python
  4. windows,远程开机,远程唤醒(WOL,Wake-on-LAN),只在刚关机一段时间内可以实现,时间长了就无法实现
  5. java文件打成jar包
  6. 一直在路上 | 多位顶尖技术大咖入驻腾讯云最具价值专家
  7. 怎样通过修改folder.htt来实现文件夹加密码
  8. 谈谈mysql update语句 set顺序问题、列交换sql实现及多表更新注意事项
  9. International Classification for Standards 国际标准分类号
  10. html解决邮件图片不显示图片,邮件营销中图片无法显示的处理方式