BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempChd VARCHAR(1000);
//$sTemp保存家族成员
SET sTemp = '$';
//将第一个父辈家族成员类型转换并放入家庭sTempChd
SET sTempChd =cast(rootId as CHAR);
//如果现在这一代家族成员不是空
WHILE sTempChd is not null DO
//获取这一代家族成员,用来作为下一代的父辈
SET sTemp = concat(sTemp,',',sTempChd);
//将获取的下一代家族成员into到sTempChd,这里会改版sTempChd的内容,不然while判断条件将失效
// FIND_IN_SET(pid,sTempChd),重点是sTempChd是变化的,里面只有当前辈的id,然后看现在pid有没有是当前辈这些id的下一辈记录,如果大于0说明还有子类,继续插入产生下一辈,继续循环。
SELECT group_concat(id) INTO sTempChd FROM shop_commodity where FIND_IN_SET(pid,sTempChd)>0;
END WHILE;
RETURN sTemp;
END