网上大把,百度也有。下面是我加上一些注释,方便下次使用。
修改一下函数,然后就可以使用了。
/* 查询树结构函数 mysql可用 */
DROP FUNCTION IF EXISTS queryUpmsMenuTree; /*函数名*/CREATE FUNCTION `queryUpmsMenuTree` (PARAM_ID VARCHAR(32)) /*传入参数*/
RETURNS VARCHAR(4000)
BEGIN
DECLARE sTemp VARCHAR(4000);
DECLARE sTempChd VARCHAR(4000);
SET sTemp = '$';
SET sTempChd = PARAM_ID; /*传入参数替换给临时变量*/
WHILE sTempChd is not NULL DO
SET sTemp = CONCAT(sTemp,',',sTempChd);
/* 下面要修改C_ID(当前ID字段名)、T_UPMS_MENU(表名)、C_PID(父ID字段名) */
SELECT group_concat(C_ID) INTO sTempChd FROM T_UPMS_MENU where FIND_IN_SET(C_PID,sTempChd)>0;
END WHILE;
return sTemp;
END;
//
测试例句:
select queryUpmsMenuTree('-1');
select C_MENU_NAME from T_UPMS_MENU where FIND_IN_SET(C_ID, queryUpmsMenuTree('-1'));