這篇文章給大家分享的是有關(guān)mysql存儲(chǔ)過程返回多個(gè)結(jié)果集的示例的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
mysql存儲(chǔ)函數(shù)只返回一個(gè)值。要開發(fā)返回多個(gè)值的存儲(chǔ)過程,需要使用帶有INOUT或OUT參數(shù)的存儲(chǔ)過程。
咱們先來看一個(gè)orders表它的結(jié)構(gòu):
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
然后嘞,咱們來看一個(gè)存儲(chǔ)過程,它接受客戶編號(hào),并返回發(fā)貨(shipped),取消(canceled),解決(resolved)和爭(zhēng)議(disputed)的訂單總數(shù)(多個(gè)結(jié)果集):
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
其實(shí),除IN參數(shù)之外,存儲(chǔ)過程還需要4個(gè)額外的OUT參數(shù):shipped, canceled, resolved 和 disputed。 在存儲(chǔ)過程中,使用帶有count函數(shù)的select語句根據(jù)訂單狀態(tài)獲取相應(yīng)的訂單總數(shù),并將其分配給相應(yīng)的參數(shù)。按著上面的sql,我們?nèi)绻褂胓et_order_by_cust存儲(chǔ)過程,可以傳遞客戶編號(hào)和四個(gè)用戶定義的變量來獲取輸出值。執(zhí)行存儲(chǔ)過程后,我們?cè)偈褂肧ELECT語句輸出變量值:
+----------+-----------+-----------+-----------+ | @shipped | @canceled | @resolved | @disputed | +----------+-----------+-----------+-----------+ | 22 | 0 | 1 | 1 | +----------+-----------+-----------+-----------+ 1 row in set
感謝各位的閱讀!關(guān)于mysql存儲(chǔ)過程返回多個(gè)結(jié)果集的示例就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
本文題目:mysql存儲(chǔ)過程返回多個(gè)結(jié)果集的示例-創(chuàng)新互聯(lián)
本文地址:http://sd-ha.com/article14/jjjge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、做網(wǎng)站、虛擬主機(jī)、企業(yè)建站、電子商務(wù)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容