mysql里面如何实现这样的递归查询?

时间:2021-07-03 06:21:02
以下代码参考的是社区里面一位大侠的
select *,(select count(*) from tree where parentid = T.id and dirid=id) as children from tree T where parentid = 0 and dirid=id

这个表的结构是
id int(4)
parentid int(4)
remark varchar(15)
dirid int(4)

id parentid remark dirid
1        0   xxx     1
2        1   xxx     1
3        1   xxx     1 
4        2   xxx     1
5        3   xxx     1
6        3   xxx     1
.......

SQLServer里面可以用
但是mySQL遇到语法错误
请教各位大人怎么修改可以用呢?

10 个解决方案

#1


建议楼主转到mysql版去问.

#2


一转眼,老大又来了,不过既然你不说,我就要试试了。

#3


贴出你的错误提示先!

#4


select a.id,a.parentid,a.remark,a.dirid,count(*)
from tree a,tree b
where a.id = b.parentid
group by a.id,a.parentid,a.remark,a.dirid

#5


不是我不说,是楼主说是mysql,我不会mysql

#6


你就认为:
是不支持 子查询 的 Sql Server

#7


select a.id,a.parentid,a.remark,a.dirid,count(*)
from tree a,tree b
where a.id = b.parentid 
      and a.id = a.dirid
--    and a.id = b.parentid
group by a.id,a.parentid,a.remark,a.dirid

#8


老大们,我只有一张表tree
里面元素是用dirid来区别的

我是嵌在jsp里面的
tomcat报错
Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select count(*) from tree where parentid = T.id and dirid=3) as"

。。。。
多谢位各位大人了

#9


在中国队勇夺双金斗志感召和大虾们友情提示版本的建议下
我用mysql5竟然把这个问题渡过去了。。。
jsp中间动态生成的树已经可以显示

不过又发现了一个比较难堪的问题:remark字段不能存中文,不然还是报错。。。

月底要交论文开题报告了
老板还威逼这个活。。。

我对数据库也不是很熟悉
谢谢各位大哥无私帮助,感恩不尽啦!!

#10


我用gb2312转码
但是网页上显示的
和从mysql>提示符下面查询出来的
都是乱码
。。。

#1


建议楼主转到mysql版去问.

#2


一转眼,老大又来了,不过既然你不说,我就要试试了。

#3


贴出你的错误提示先!

#4


select a.id,a.parentid,a.remark,a.dirid,count(*)
from tree a,tree b
where a.id = b.parentid
group by a.id,a.parentid,a.remark,a.dirid

#5


不是我不说,是楼主说是mysql,我不会mysql

#6


你就认为:
是不支持 子查询 的 Sql Server

#7


select a.id,a.parentid,a.remark,a.dirid,count(*)
from tree a,tree b
where a.id = b.parentid 
      and a.id = a.dirid
--    and a.id = b.parentid
group by a.id,a.parentid,a.remark,a.dirid

#8


老大们,我只有一张表tree
里面元素是用dirid来区别的

我是嵌在jsp里面的
tomcat报错
Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select count(*) from tree where parentid = T.id and dirid=3) as"

。。。。
多谢位各位大人了

#9


在中国队勇夺双金斗志感召和大虾们友情提示版本的建议下
我用mysql5竟然把这个问题渡过去了。。。
jsp中间动态生成的树已经可以显示

不过又发现了一个比较难堪的问题:remark字段不能存中文,不然还是报错。。。

月底要交论文开题报告了
老板还威逼这个活。。。

我对数据库也不是很熟悉
谢谢各位大哥无私帮助,感恩不尽啦!!

#10


我用gb2312转码
但是网页上显示的
和从mysql>提示符下面查询出来的
都是乱码
。。。