求SQL语句:
查询前X行到前X+5行。X为已知数。返回前X-X+5行的ID。如果NEXT不为0。还需返回ID为NEXT值的那条记录。(如果ID为NEXT的记录的NEXT不为0。再递归一次)
数据表:
ID | NEXT
-------------
  1  |    0
  2  |    0
  3  |    7
  4  |    0
  5  |    10
  6  |    0
  7  |    8
  8  |    0
  9  |    0
10  |    0
-------------例如 查询前0-5行记录查询结果:ID | NEXT
------------
  1 | 0
  2 | 0
  3 | 7
  4 | 0
  5 | 10 
  7 | 8
  8 | 0
10 | 0
-----------
首先返回前5条记录。然后3 NEXT 7。所以7也返回。 7 NEXT 8 所以 8也返回。 5 NEXT 10。10返回
求SQL查询语句

解决方案 »

  1.   

    楼主你好
            with cte as
            (
                select * from table limit 0,5
                 union all
                select d.ID,d.NEXT from cte c inner join table d
               on d.ID=c.NEXT
              )
         select * from cte建议将表中的next等字段改名,还有上边 代码中的表名table也改成你要的
      

  2.   


    mysql现在不支持递归,你这个sql需求还是比较复杂的,要根据数据本身来判断,接下去显示什么数据,类似于循环的效果,建议你写个函数来实现把。
      

  3.   

    需要使用存储函数来实现,或者直接在程序中实现,MYSQL本身没有查询语句支持递归。