以mysql为例,通过sql查找所有父节点和所有子节点

这篇具有很好参考价值的文章主要介绍了以mysql为例,通过sql查找所有父节点和所有子节点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以图中的dept表为例:
sql查询所有父节点,数据库,mysql,sql,父节点,子节点
id:主键
parent_id:父id
name:名称

1. 获取所有子节点sql:

 select id from dept where id = 2
    union
 select t.id
        from (select * from dept where parent_id is not null) t,
             (select @pid := 2) pd
        where FIND_IN_SET(parent_id,@pid) > 0
                  and @pid := CONCAT(@pid,',',id)

此sql查询id=2的所有子节点id,并包括当前id=2的节点,如果不想包括当前节点,去掉

select id from dept where id = 2
	union

即可

查询结果:
sql查询所有父节点,数据库,mysql,sql,父节点,子节点
2. 获取所有父节点sql:

SELECT t2.id
FROM ( SELECT @r AS _id, (SELECT @r := parent_id FROM dept WHERE id = _id) AS parent_id, 
			@l := @l + 1 AS lvl FROM (SELECT @r := 3, @l := 0) vars, dept WHERE @r != 0) t1 
JOIN dept t2 
ON t1._id = t2.id 
ORDER BY t1.lvl DESC

此sql查询id=3的所有父节点sql,
查询结果:
sql查询所有父节点,数据库,mysql,sql,父节点,子节点文章来源地址https://www.toymoban.com/news/detail-612138.html

到了这里,关于以mysql为例,通过sql查找所有父节点和所有子节点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql 查询数据库所有表,表字段

    工作中,编写xmlsql时需要查询全部字段,可以利用sql快速组装所有的列 1.查询所有的表名 2.查询某个表的所有字段 3.组装表的所有列

    2024年02月12日
    浏览(41)
  • Sql Server中查询数据库所有表及其数据总条数和占用空间

    1、查询某数据库中的所有数据表 SELECT name 数据表 FROM sysobjects WHERE xtype=\\\'u\\\' ORDER BY name 2、查询某数据库中的所有数据表及其数据总条数 SELECT a.name 数据表, b.rows 数据总条数 FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE ( a.type = \\\'u\\\' ) AND ( b.indid IN ( 0, 1 ) ) ORDER BY a.name,b.row

    2024年02月02日
    浏览(36)
  • MySQL查询数据库所有表名及其注释

    1 查询 数据库 所有表 select table_name  from  information_schema.tables  where  table_schema=\\\'sdam\\\' 2 查询数据库所有表 和表的 注释 SELECT TABLE_NAME, TABLE_COMMENT from  information_schema.tables  WHERE TABLE_SCHEMA = \\\'dam\\\'  ORDER BY TABLE_NAME; 3 查询数据库 单个表名所有表 注释 SELECT COLUMN_NAME 字段,column_com

    2024年02月10日
    浏览(39)
  • SQL的递归查询子/父节点结构(MySQL)

    当数据库中存储了树型结构的数据,例如城市表时,我们要搜索一个城市的所有 父级 城市或所有的 子级 城市,首先想到的就是利用SQL的 递归查询 ,来看下面的MySQL例子(下列例子MySQL只适用于8.0版本及以上): 下载SQL,执行 表结构和数据SQL文件下载(该文件中中国城市可

    2024年02月03日
    浏览(31)
  • MYSQL 查询数据库中所有表中的数据量

    SELECT TABLE_NAME, TABLE_ROWS  FROM INFORMATION_SCHEMA.TABLES  WHERE TABLE_SCHEMA = \\\'your_database_name\\\'; 将 your_database_name 替换为您实际使用的数据库名称。 执行以上查询语句后,将会获取到 your_database_name 数据库中所有表的数据量,其中 TABLE_NAME 列表示表名称, TABLE_ROWS 列表示表中的数据量。

    2024年02月11日
    浏览(53)
  • 很好用的mysql父子集查询SQL(根据父级查询所有子集)

    在表中一定要有id和pid,这样才能使用该sql。 根据pid查询出其下的所有子集(比如,子集的子集的子集…)全部查询出来。 首先,在表中按照父节点(parent_id)和id字段(id)的顺序对数据进行排序,并将排序后的结果存入 org_query 子查询中。 然后,使用变量 @id 以递归方式检索所

    2024年02月15日
    浏览(32)
  • 查询Oracle和MySQL数据库中当前所有连接信息

    查询Oracle当前所有连接信息: 查询MySQL当前所有连接信息: 在这两个查询中,我为每个字段添加了中文别名,以提高查询结果的可读性

    2024年02月12日
    浏览(53)
  • mysql、clickhouse查询数据库所有的表以及字段信息

    mysql查询数据库所有的表以及字段信息 SELECT     table_schema 数据库名,   table_name 表名,   COLUMN_NAME 列名,   COLUMN_TYPE 数据类型,   DATA_TYPE 字段类型,   CHARACTER_MAXIMUM_LENGTH 长度,   IS_NULLABLE 是否为空,   COLUMN_DEFAULT 默认值,   COLUMN_COMMENT 备注  FROM  INFORMATION_SCHEMA.COLUMNS where -- tab

    2024年02月08日
    浏览(54)
  • Mysql中查询数据库中包含某个字段的所有表名

    有一个商品的名称配置错误了,需要进行修改,但是涉及到的表太多了,因为商品的sku_name被冗余到了很多表中,一个一个的找非常的费事费力,特地记下便捷查询操作以备后用。 本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。 首发链接:https://www.cnblogs.

    2024年02月17日
    浏览(64)
  • Mysql 数据库DQL 数据查询语言 SELECT 基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询——包含DQL所有查询语句。吐血分享。

    DQL:数据查询语言; 用来对表内的数据进行查找 。Database Query Language SQL语句分为:基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询。  可以发现name字段就只剩下一个张三了;   条件: 条件查询—比较运算符 比较运算符 功能 大于 = 大于等于 小于 = 小于等

    2024年01月19日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包