-- 构建function
DROP FUNCTION if EXISTS getParList;
CREATE FUNCTION `getParList` (rootId VARCHAR(1000))
RETURNS VARCHAR (1000)
BEGIN
DECLARE
sTemp VARCHAR (1000);
DECLARE
sTempPar VARCHAR (1000);
SET sTemp = '';
SET sTempPar = rootId;
WHILE sTempPar IS NOT NULL DO
IF sTemp != '' THEN
SET sTemp = concat(sTemp, ',', sTempPar);
ELSE
SET sTemp = sTempPar;
END
IF;
SET sTemp = concat(sTemp, ',', sTempPar);
SELECT
group_concat(parent_key) INTO sTempPar
FROM
t_tb_trace
WHERE
parent_key <> node_key
AND FIND_IN_SET(node_key, sTempPar) > 0;
END
WHILE;
RETURN sTemp;
END
-- 调用查询
select * from t_tb_trace where FIND_IN_SET(node_key, getParList('478b9084d5d2384ecc1ad31f760af308'))
SELECT GROUP_CONCAT( name_cn ) FROM tb_modifier WHERE FIND_IN_SET( id, m.modifier_ids )