一、選擇函數(shù)戏蔑,新建函數(shù)
二蹋凝、定義函數(shù)文件名稱(chēng),選擇函數(shù)总棵,選擇完成
三鳍寂、查看函數(shù)內(nèi)容
四、把代碼替換到上圖情龄,然后保存
CREATE DEFINER=`admin`@`%` FUNCTION `get_value_of`(in_id varchar(32)) RETURNS varchar(1000) CHARSET utf8
begin
declare ids varchar(1000) default '';
declare tempids varchar(1000);
set tempids = in_id;
while tempids is not null do
set ids = CONCAT_WS(',',ids,tempids);
select GROUP_CONCAT(id) into tempids from '需要遞歸的表名稱(chēng)' where FIND_IN_SET(parent_id,tempids)>0;
end while;
return ids;
end
- ids:拼接最終返回?cái)?shù)據(jù)(本身 + 子級(jí))
- '需要遞歸的表名稱(chēng)' :表名稱(chēng)
- parent_id:父級(jí)ID
- id:需要遞歸的ID
- get_value_of:函數(shù)名稱(chēng)
- tempids:tempids = in_id迄汛,in_id = 傳入的值
五、通過(guò)函數(shù)遞歸查詢(xún)子級(jí)
select * from '需要遞歸的表名稱(chēng)' where FIND_IN_SET(id,get_value_of('放入要遞歸的id'))
六刃唤、示例
1隔心、函數(shù)示例
2、sql查詢(xún)示例
- 通過(guò)id 為 c60 的當(dāng)前一級(jí)分類(lèi) '資負(fù)類(lèi)'尚胞,遞歸查詢(xún)所有子級(jí)
- 查詢(xún)到了二級(jí)分類(lèi):'AUM' 硬霍、'其他'、'信用卡'笼裳、'存款'唯卖、'貸款'
- 查詢(xún)到了 '存款' 下的三級(jí)分類(lèi):'三級(jí)目錄'
- 查詢(xún)到了 '三級(jí)目錄' 下的四級(jí)分類(lèi):'四級(jí)'