mysql存储过程返回多个结果集的示例
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,这篇文章给大家分享的是有关mysql存储过程返回多个结果集的示例的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql存储函数只返回一个值。要开发返回多个值的存储过程,需
千家信息网最后更新 2025年11月12日mysql存储过程返回多个结果集的示例
这篇文章给大家分享的是有关mysql存储过程返回多个结果集的示例的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。
咱们先来看一个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_no AND status = 'Shipped'; -- canceled SELECT count(*) INTO canceled FROM orders WHERE customerNumber = cust_no AND status = 'Canceled'; -- resolved SELECT count(*) INTO resolved FROM orders WHERE customerNumber = cust_no AND status = 'Resolved'; -- disputed SELECT count(*) INTO disputed FROM orders WHERE customerNumber = cust_no AND 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
感谢各位的阅读!关于mysql存储过程返回多个结果集的示例就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
存储
过程
多个
参数
结果
订单
示例
内容
函数
客户
总数
更多
语句
输出
不错
实用
变量
文章
状态
用户
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全1000作文
数据库设计包括三种模型设计
关于KFC数据库管理技术
计算机网络技术破坏罪
湖北银联网络技术服务哪家好
服务器游戏主机
软件开发做实施好不
宇达网络安全专家
中兴网络技术工程师营销岗
浙江潮流软件开发设施
adk服务器是什么意思
北邮网络安全学院哪个好
当兵可以学网络技术吗
mc服务器只是炸了一下
数据库经典课件
软件开发过程中的争执
权威的网络安全网站
http应用服务器
徐州服务器管理机房it维保工厂
日本网络技术发展
r语言数据库字符替换
网络安全心的怎么写
h3c虚拟服务器设置
气象局筑牢网络安全屏障网
数据库设备验收方案
微信服务器保留记录吗
北京现代化软件开发品质保障
信息安全和网络安全薪资哪个高
铜山软件开发技术
嘉定区散射网络技术产品