Mysql 递归查询所有上级或下级
-- mysql 递归查找所有上级 下级只需要更改下查询语句即可 DELIMITER $$ -- 修改 mysql 结束符 CREATE FUNCTION userall(uid INT) RETURNS LONGTEXT -- 创建函数 BEGIN -- 代码开始 DECLARE info LONGTEXT; -- 创建一个局部变量 用来存放结果集,不支持数组 SET info = '*'; -- 设置一个默认值,便与拼接递归出来的数据 SET uid = CAST(uid AS CHAR); -- 把uid设置为 char 格式,方便拼接 WHILE uid <> 0 DO -- 循环开始 所谓递归就的使用到 while SET info = CONCAT(info,',',uid); -- 拼接结果集 SELECT g_parent_id INTO uid FROM g_user WHERE g_id=uid; -- 查询数据 END WHILE; -- 结束循环 RETURN info; -- 返回结果集 END -- 函数结束 $$ -- 结束创建 DELIMITER ; -- 修改 mysql 结束语句为默认 ; 号
Dcr163的博客
http://dcr163.cn/170.html(转载时请注明本文出处及文章链接)