事件:
最近把数据库为oracle的程序换成mysql数据库,期间遇到了orcale中的START WITH CONNECT BY语句,第一次见到这种语句,也算是一种扩展吧。

看了几篇博客说这个是一个递归算法:参考博客

在我这里的oracle的sql如下:

SELECT *
FROM user_table u
WHERE u.STATE = 'U'
START WITH u.user_id = 100 
CONNECT BY NOCYCLE PRIOR u.dept_id = u.user_id;

于是查了mysql中递归算法的使用,参考博客

改成mysql后的语句如下:

SELECT *
FROM user_table u 
WHERE NOT EXISTS(
   select * from user_table u1,user_table u2  where 
   u1.dept_id=u2.user_id AND u.dept_id=u1.dept_id
)

与君共勉!!!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐