标签:返回 resolved 存储 disputed cust canceled shipped MySQL SELECT
MySQL存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT
或OUT
参数的存储过程。
返回多个值的存储过程示例:
SELECT * FROM orders;
原表的数据如上面所示。返回多个值,其实就是多设置几个inout/out的参数。
SQL 如下:
USE yiibaidb; DROP PROCEDURE IF EXISTS get_order_by_cust; -- 以下存储过程接受客户编号,并返回发货(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 SELECT COUNT(*) INTO shipped FROM orders WHERE customerNumber=cust_no AND STATUS=shipped; SELECT COUNT(*) INTO canceled FROM orders WHERE customerNumber=cust_no AND STATUS=canceled; SELECT COUNT(*) INTO resolved FROM orders WHERE customerNumber=cust_no AND STATUS=resolved; SELECT COUNT(*) INTO disputed FROM orders WHERE customerNumber=cust_no AND STATUS=disputed; END $$ DELIMITER; CALL get_order_by_cust(141,@shipped,@canceled,@resolved,@disputed); SELECT @shipped,@canceled,@resolved,@disputed;
除IN
参数之外,存储过程还需要4
个额外的OUT
参数:shipped
, canceled
, resolved
和 disputed
。 在存储过程中,使用带有COUNT函数的SELECT语句根据订单状态获取相应的订单总数,并将其分配给相应的参数。
要使用get_order_by_cust
存储过程,可以传递客户编号和四个用户定义的变量来获取输出值。
执行存储过程后,使用SELECT
语句输出变量值。结果如下:
标签:返回,resolved,存储,disputed,cust,canceled,shipped,MySQL,SELECT 来源: https://www.cnblogs.com/yuezc/p/12924104.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。