首先創(chuàng)建一個(gè)熟悉的機(jī)構(gòu)表

作為一家“創(chuàng)意+整合+營(yíng)銷(xiāo)”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、做網(wǎng)站、創(chuàng)意表現(xiàn)、網(wǎng)頁(yè)制作、系統(tǒng)開(kāi)發(fā)以及后續(xù)網(wǎng)站營(yíng)銷(xiāo)運(yùn)營(yíng)等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營(yíng)模式與有效的網(wǎng)絡(luò)營(yíng)銷(xiāo)方法,創(chuàng)造更大的價(jià)值。
插入幾條測(cè)試數(shù)據(jù):
union all上面的是初始化語(yǔ)句,只會(huì)執(zhí)行一次,查到了 開(kāi)發(fā)部 這一行記錄。
接下來(lái)下面的join會(huì)用初始化的語(yǔ)句去原來(lái)的organization表去join獲取所有 開(kāi)發(fā)部的子部門(mén) ,然后再用這些 子部門(mén) 去join更下面的部門(mén)。
執(zhí)行的結(jié)果如下:
如下想查詢開(kāi)發(fā)部的所有上級(jí)部門(mén)的話上面的遞歸查詢語(yǔ)句簡(jiǎn)單改一下就可以了:
執(zhí)行結(jié)果如下:
Recursive Common Table Expression 'temp' can contain neither
aggregation nor window functions in recursive query block
mysql
mysql對(duì)遞歸的深度是有限制的,默認(rèn)的遞歸深度是1000。
可以通過(guò) show variables like 'cte_max_recursion_depth'; 進(jìn)行查看
也可以通過(guò)select語(yǔ)句最大執(zhí)行時(shí)間對(duì)遞歸加以顯示, show variables lile 'max_execution_time';
mysql是可以使用遞歸函數(shù)的,如下例子:
mysql樹(shù)查詢,sql遞歸函數(shù)
select cateID from goodscategory where FIND_IN_SET(cateID ,getGoodsChildLst('43242'))
CREATE FUNCTION `getGoodsChildLst`(rootId INT)
RETURNS varchar(1000)
BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempChd VARCHAR(1000);
SET sTemp = '$';
SET sTempChd =cast(rootId as CHAR);
WHILE sTempChd is not null DO
SET sTemp = concat(sTemp,',',sTempChd);
SELECT group_concat(cateID) INTO sTempChd FROM goodscategory where FIND_IN_SET(parentCateID,sTempChd)0;
END WHILE;
RETURN sTemp;
END
一般比較普遍的就是四種方法:(具體見(jiàn) SQL Anti-patterns這本書(shū))
因?yàn)椴恢С诌f歸查詢,所以Mysql官方當(dāng)時(shí)推薦的是第三種方式:Nested Sets。我是用過(guò)的,非常難受。現(xiàn)在支持遞歸查詢,我們可以使用第一種。
其實(shí)我還用了一種,一列維持順序,一列維持層級(jí),有空可以把實(shí)現(xiàn)寫(xiě)出來(lái)看看。
英文好的朋友請(qǐng)移步到這里: Managing Hierarchical Data in MySQL Using the Adjacency List Model ,不好的同學(xué)跟我一起來(lái)。
直接語(yǔ)句說(shuō)明:
好,就這些吧。我是姜友華,下次見(jiàn)。
文章題目:mysql怎么遞歸函數(shù) mysql遞歸sql
當(dāng)前鏈接:http://www.chinadenli.net/article46/hipgeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、域名注冊(cè)、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、商城網(wǎng)站、品牌網(wǎng)站建設(shè)
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容