600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > mysql存储过程返回多个结果集吗

mysql存储过程返回多个结果集吗

时间:2019-05-29 04:41:36

相关推荐

mysql存储过程返回多个结果集吗

数据库|mysql教程

mysql

数据库-mysql教程

本篇文章将介绍存储过程返回多个结果集时是什么结果,希望给大家以参考作用。

linux 小游戏源码,ubuntu 如何看时区,py爬虫语言基础,PHP怎么访问其他PHP,前端seo书籍lzw

艺帆英国艺帆英国留学机构网站源码1.7v,ubuntu保存蓝牙信号,爬虫柜养仓鼠,php 重载,seo482lzw

mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。

芸众商城源码怎么安装,新建ubuntu文件,启动tomcat数据库,爬虫练习视频,php 项目经理面试,请输入首页的seo关键词lzw

咱们先来看一个orders表它的结构:

mysql> desc orders;+----------------+-------------+------+-----+---------+-------+| Field| Type | Null | Key | Default | Extra |+----------------+-------------+------+-----+---------+-------+| orderNumber | int(11)| NO | PRI | NULL | || orderDate| date | NO || NULL | || requiredDate | date | NO || NULL | || shippedDate | date | YES || NULL | || status | varchar(15) | NO || NULL | || comments | text | YES || NULL | || customerNumber | int(11)| NO | MUL | NULL | |+----------------+-------------+------+-----+---------+-------+7 rows in set

然后嘞,咱们来看一个存储过程,它接受客户编号,并返回发货(shipped),取消(canceled),解决(resolved)和争议(disputed)的订单总数(多个结果集):

DELIMITER $$ CREATE PROCEDURE get_order_by_cust( IN cust_no INT, OUT shipped INT, OUT canceled INT, OUT resolved INT, OUT disputed INT)BEGIN -- shipped SELECT count(*) INTO shipped FROM orders WHERE customerNumber = cust_noAND status = Shipped; -- canceled SELECT count(*) INTO canceled FROM orders WHERE customerNumber = cust_noAND status = Canceled; -- resolved SELECT count(*) INTO resolved FROM orders WHERE customerNumber = cust_noAND status = Resolved; -- disputed SELECT count(*) INTO disputed FROM orders WHERE customerNumber = cust_noAND status = Disputed; END

其实,除IN参数之外,存储过程还需要4个额外的OUT参数:shipped, canceled, resolved 和 disputed。 在存储过程中,使用带有count函数的select语句根据订单状态获取相应的订单总数,并将其分配给相应的参数。按着上面的sql,我们如果要使用get_order_by_cust存储过程,可以传递客户编号和四个用户定义的变量来获取输出值。执行存储过程后,我们再使用SELECT语句输出变量值:

+----------+-----------+-----------+-----------+| @shipped | @canceled | @resolved | @disputed |+----------+-----------+-----------+-----------+| 22 | 0 | 1 | 1 |+----------+-----------+-----------+-----------+1 row in set

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。