MySQL自定義函式 根據一級部門查詢所有子部門 記錄貼

茶安安安發表於2020-11-05

MySQL自定義函式 根據一級部門查詢所有子部門 記錄貼

根據部門id查詢其所有子部門

廢話不多說 直接上函式

mysql函式

SELECT * FROM gkmobile_power_dept WHERE FIND_IN_SET(PK_DEPTDOC,getChild(‘1044V11000000002UIVQ’))

DELIMITER D R O P F U N C T I O N I F E X I S T S g e t C h i l d DROP FUNCTION IF EXISTS getChild DROPFUNCTIONIFEXISTSgetChild
CREATE FUNCTION getChild(rootId VARCHAR(40)) RETURNS text CHARSET utf8
BEGIN
DECLARE ptemp VARCHAR(21845);
DECLARE ctemp VARCHAR(21845);
SET ptemp = ‘#’;
SET ctemp =rootId;
WHILE ctemp IS NOT NULL DO
SET ptemp = CONCAT(ptemp,’,’,ctemp);
SELECT GROUP_CONCAT(PK_DEPTDOC) INTO ctemp FROM gkmobile_power_dept
WHERE FIND_IN_SET(PK_FATHEDEPT,ctemp)>0;
END WHILE;
RETURN ptemp;
END $$
DELIMITER ;

在這裡插入圖片描述

PK_DEPTDOC部門ID
PK_FATHEDEPT部門父ID
gkmobile_power_dept 表
rootId 入參

相關文章