文档章节

mysql递归查询

bako
 bako
发布于 06/14 14:45
字数 279
阅读 8
收藏 1

mysql无限递归查询 

user
user_id name parent_user_id
0 test-0

null

1 test-1

0

2 test-2

0

3 test-3

1

4 test-4 3

如图现有user表一张每条数据都与其他数据存在关联关系,现在有需求要查询id=0和下面所有的数据,Sql如下:

SELECT
    u.* 
FROM
    user u,
    (
    select
        d.user_ids 
    from
        (
        select
            @a := concat( @a, ',', b.user_id ) user_ids 
        from
            user b,
            (select @a := 0) c 
        where
            find_in_set( b.parent_user_id, @a ) > 0 
        ) d 
    order by
        length( d.user_ids) desc 
        limit 1
    ) e 
where
    find_in_set( u.user_id, e.user_ids )

如果只要id=0下面数据则可以这样写,Sql如下:

SELECT
    u.* 
FROM
    user u,
    (
    select
        substr(d.user_ids,length('0')+2) user_ids
    from
        (
        select
            @a := concat( @a, ',', b.user_id ) user_ids 
        from
            user b,
            (select @a := 0) c 
        where
            find_in_set( b.parent_user_id, @a ) > 0 
        ) d 
    order by
        length( d.user_ids) desc 
        limit 1
    ) e 
where
    find_in_set( u.user_id, e.user_ids )

以上就是全部内容,有什么问题或者建议可以下面留言

© 著作权归作者所有

bako

bako

粉丝 0
博文 1
码字总数 279
作品 0
浦东
程序员
私信 提问
数据库递归查询:MySQL VS Sequelize

一、前言 最近在做团队的排期系统改版时涉及到数据库的递归查询问题,有一个需求数据表,表中的需求数据以parentId为外键定义数据的继承关系,需求之间的关系呈现树状关系。需求数据表如下:...

嘻嘻哈哈学习
04/16
0
0
PostgreSQL的递归查询(with recursive)

开发有需求,说需要对一张地区表进行递归查询,Postgres中有个 with recursive的查询方式,可以满足递归查询(一般>=2层)。 测试如下: 测试语句,查询浙江省及以下县市: 如果查询有报错如死循...

kenyon_君羊
2012/04/25
21.6K
9
Disqus 评论设计

众所周知,我上个月加入了Disqus公司。对我来说,这是一个很大(真的很大)的改变。他们那里有许多吸引人的问题,另外还有许多愿意一起解决他们的人。 我一直是MySQL的提倡者:不仅仅是因为他...

ifsc01
2013/03/14
4.2K
15
递归无限分类实现1

递归实现无线分类 1.两种使用场景 分类下拉列表 面包屑导航 2.分类下来列表 分类下拉类表主要使用在后台添加商品或者文章界面选择分类的时候。 用什么体现下拉缩进 实现原理 (where pid=id)...

oneboi
2016/10/14
54
0
MySQL递归查找存储过程

依然是SQL问题,是上篇博客(http://my.oschina.net/u/1991646/blog/731996)的升级版需求(上篇是查询3层,此次是查询所有):无可避免的最终还是使用了MySQL存储过程。 先说明业务场景:查...

郁极风
2016/08/16
624
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部