mysql 根据父id查询所有子类id 用存储过程怎么写,

吉他猪 2014-11-27 12:46:20
不要用FIND_IN_SET方法连接字符串的形式,我用网上的

BEGIN
DECLARE sTemp text;
DECLARE sTempChd text;
SET sTemp = '';
SET sTempChd =CAST(rootId AS CHAR);
WHILE sTempChd IS NOT NULL DO
SET sTemp = CONCAT(sTemp,',',sTempChd);
SELECT GROUP_CONCAT(id) INTO sTempChd FROM notes WHERE FIND_IN_SET(parentid,sTempChd)>0;
END WHILE;
RETURN sTemp;
END

不准,有的查不出来,能不能写个创建临时表的谢谢
...全文
532 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
知道就是你 2014-12-02
  • 打赏
  • 举报
回复
前辈,问个问题,看完您的“MySQL中进行树状所有子节点的查询 ”,根据帖子做实验,将查出的结果已逗号拼接方式返回,返回不管使用“自定义递归获取子网点函数”,“利用临时表和存储过程递归”,“利用中间表和存储过程”,还是修改返回结果类型为:varchar,text,mediamtext,longtext,返回的结果总是一部分,不能全部返回(一次返回3004个值(每个值长度为varchar(8),中间使用逗号隔开),一次最多返回120个,共计长度为2087个字符)。Mysql对于查询结果(字符串)返回是否有长度限制?或其他限制?(max_packet_size 值为空)求解惑,非常感谢!!!!
吉他猪 2014-11-27
  • 打赏
  • 举报
回复
额,都差不多撒,版主帮忙看下撒
bw555 2014-11-27
  • 打赏
  • 举报
回复
mysql?发错版了吧,这是oracle版
ACMAIN_CHM 2014-11-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/acmain_chm/article/details/4142971 MySQL中进行树状所有子节点的查询 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现。 但很多时候我们..
benluobo 2014-11-27
  • 打赏
  • 举报
回复
相同的帖子 另外一个已经给了例子

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧