weixin_45326504 2021-07-22 23:41 采纳率: 100%
浏览 151
已结题

MYSQL 5.8 如何递归查询路径 举例如下

img
一个表ABC ,两列UID 和PID , 现在需要得到UID 与PID 的路径关系如下:
img
这个是用SQLSERVER的 with as 递归查询语句得出的结果。 请问 用MYSQL 语句如何得出这个结果。请给出MYSQL 的查询语句。

  • 写回答

3条回答 默认 最新

  • CSDN专家-Time 2021-07-23 22:35
    关注
    CREATE FUNCTION func(M INT,N INT) RETURNS varchar(50)
    BEGIN
      DECLARE str varchar(50) DEFAULT '';
      DECLARE p int DEFAULT 0;
        DECLARE u int DEFAULT 0;
      DECLARE count int DEFAULT 0;
        set p = N;
      set u = M;
      set count = 0;
        if p = 0 Then
         set str = concat(u,'');
      end if;
      while p != 0 do
    
        select uid into u from a where pid = p and uid = u;
      select pid into p from a where pid = p and uid = u;
          if p = 0 THEN
          set p = 0;
        else 
          if count = 0 THEN
                        set str = concat(p,"->",u,str);
          else
              set str = concat(p,"->",str);
          end if;
            end if;
        set u = p;
        set count= count+1;
            select pid into p from a where uid = u;
       end while;
     
      RETURN (
          # Write your MySQL query statement below.
            str
          );
    END;
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月1日
  • 已采纳回答 7月24日
  • 创建了问题 7月22日

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型