如何将postgresql的递归语句用mysql实现

奈何三千烦恼丝 2016-11-23 11:19:08
postgresql中可以通过with recursive 实现递归查询,但是mysql好像不能支持,有么有那个兄弟帮忙看看解决,感激不尽哈。 WITH RECURSIVE d AS (SELECT d1.id,d1.pid,d1.name,d1.sort_num,d1.type FROM v_user_position d1 WHERE d1.id=?
UNION ALL SELECT d2.id,d2.pid,d2.name,d2.sort_num,d2.type FROM v_user_position d2, d WHERE d2.pid = d.id)
SELECT DISTINCT id FROM d WHERE TYPE=10 AND d.id NOT IN (SELECT id FROM sso_user WHERE position_id =? AND id!=?)

...全文
335 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
mysql中我记得最新版本的支持 with 递归的,你可以把mysql升级到最新的版本: MySQL 8.0及将来的在优化器重点归规划 MySQL 对Json的支持将更加友好; GIS对经纬度将会有更好的运算效率(因此建议MySQL 8.0后再大规模上线GIS应用); Join优化,这个在MySQL 5.7中已经实现,在MySQL 8.0中进一步增强 ; 索引方面增强,增加可见及不可见索引,倒序索引; MySQL 8.0改用utf8mb4做为默认字符集,升级中注意索引有效性; CTE(公用表表达式,Common Table Expression)功能及更多的统计类windowing函数; 新的HINT引入,在以后的版本中会更好的优化HINT; 其它特性,例如直方图统计信息,更友好的数据读取,减少handler API调用,对于uuid的优化等。
ACMAIN_CHM 2016-11-24
  • 打赏
  • 举报
回复
MYSQL中只能自己写存储过程,或者在程序中实现。
引用
http://blog.csdn.net/acmain_chm/article/details/4142971 MySQL中进行树状所有子节点的查询 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现。 但很多时候我们...
致命的西瓜 2016-11-24
  • 打赏
  • 举报
回复
start with ... connect by 是oracle的,mysql递归还是要写函数做循环
ma100 2016-11-24
  • 打赏
  • 举报
回复
mysql里有start with ... connect by 类似递归

56,677

社区成员

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

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