1、根据子节点查询所有的父节点
创建getParentList函数
SQL语句如下:
delimiter //
CREATEFUNCTION `getParentList`(rootId INT)
RETURNS varchar(1000)
BEGIN
DECLARE sTempVARCHAR(1000);
DECLARE sTempParVARCHAR(1000);
SET sTemp ='';
SET sTempPar =rootId;
#循环递归
WHILE sTempPar is not null DO
#判断是否是第一个,不加的话第一个会为空
IF sTemp !='' THEN
SET sTemp =concat(sTemp,',',sTempPar);
ELSE
SET sTemp = sTempPar;
ENDIF;
SET sTemp =concat(sTemp,',',sTempPar);
SELECTgroup_concat(pid) INTO sTempPar FROM province where pid<>idand FIND_IN_SET(id,sTempPar)>0;
ENDWHILE;
RETURN sTemp;
END
//
此时Mysql可能会报如下错误:
解决方法:
执行此语句:show VARIABLES like "log_bin_trust_function_creators";
发现log_bin_trust_function_creators的值为OFF(这是默认值)
那么,我们再执行语句: