首页 > 数据库 >MySQL 级联查询所有父级

MySQL 级联查询所有父级

时间:2023-04-19 14:01:52浏览次数:35  
标签:code depart parent 父级 ids 查询 级联 MySQL SELECT

表结构:

id name code parent_code
1 老板 A  
2 总经理 B A
3 项目总监 C B
4 开发工程师 D C

 

 

 

 

 

 

查询D开发工程师的所有上级:

SELECT `name`, @`code` AS c_ids, 
( SELECT @`code` := parent_code FROM depart WHERE `code` = @`code` )
AS p_ids FROM depart ,
( SELECT @`code` := 'D' ) b

  

 

SQL 分析:

SELECT @`code`:= 'D' 的作用是 把'D'赋值给变量 @`code`

  

 

赋值的方法还有其他写法:
1、set @`code`='D';
2、set @`code`:='D';
3、select @`code`='D';
4、select @`code`= 字段名 from 表名 where ……

 

SELECT @`code` := parent_code FROM depart WHERE `code` = @`code`

  

不断的赋值与查询:

不断的查询 parent_code 并赋值给@`code` 通过WHERE条件不断的查询新值。

去重的写法:

 

SELECT u2.`code`, u2.`name` 
FROM ( SELECT @`code` AS c_ids ,
( SELECT @`code` := parent_code FROM depart WHERE `code` = @`code` ) AS p_ids ,@l := @l + 1 AS LEVEL FROM depart,
( SELECT @`code` := 'D', @l := 0 ) b ) u1
JOIN depart u2 ON u1.c_ids = u2.`code`

  

标签:code,depart,parent,父级,ids,查询,级联,MySQL,SELECT
From: https://www.cnblogs.com/oodcloud/p/17333057.html

相关文章

  • Mysql数据库的安装教程
    (Mysql数据库的安装教程)一、Mysql数据库介绍MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软......
  • 6.1.4 MySQL缓存策略
    LinuxC/C++服务器MySQL缓存策略大部分场景下MySQL的读要远远大于写的需求的,急需要解决的问题是提升读的性能......
  • MYSQL索引失效场景及其原理
    MySQL索引失效是指查询时不能有效利用索引,从而导致查询性能下降的现象。以下是一些常见的MySQL索引失效场景及原理:使用函数或表达式:在WHERE子句中对索引列使用函数或表达式会导致索引失效。因为MySQL无法预先计算表达式的结果,所以无法使用索引进行查找。例:SELECT*FROMusersWH......
  • MySQL事务实现原理
    事务是什么?首先思考一个问题,事务是什么?以下是事务的相关解释MySQL中的事务是一种用于确保数据库操作的完整性和一致性的机制。事务处理具有以下四个基本特性,通常被称为ACID特性:原子性(Atomicity):原子性是指事务中的所有操作要么全部完成,要么全部不完成。事务中的操作不可分割,如果......
  • MySQL InnoDB存储引擎选择B+树作为索引数据结构的原因
    MySQLInnoDB存储引擎选择B+树作为索引数据结构的原因在于其特点与性能。B+树相比红黑树和B树,更适用于关系型数据库的特点,具体体现在以下几个方面:磁盘I/O效率:数据库的数据通常存储在磁盘上,磁盘I/O操作相对较慢。B+树的一个重要特点是它能减少磁盘I/O次数。B+树是一种多路平衡查......
  • MySQL InnoDB存储引擎选择B+树作为索引数据结构的原因
    MySQLInnoDB存储引擎选择B+树作为索引数据结构的原因在于其特点与性能。B+树相比红黑树和B树,更适用于关系型数据库的特点,具体体现在以下几个方面:磁盘I/O效率:数据库的数据通常存储在磁盘上,磁盘I/O操作相对较慢。B+树的一个重要特点是它能减少磁盘I/O次数。B+树是一种多路平衡查......
  • Mysql-InnoDB深入学习
    MySql——InnoDB学习笔记转载请声明!!!切勿剽窃他人成果。本文如有错误欢迎指正,感激不尽。参考资料见最后一章所有例子均是本人亲自上机后,将代码或结果复制回来的。请勿盗图一、Mysql体系结构和存储引擎1.1MySQL体系结构我们先明白两个概念,数据库和实例。数据库是物理上的操......
  • 云时代,MySQL到ClickHouse数据同步产品对比推荐
    ClickHouse在执行分析查询时的速度优势很好的弥补了MySQL的不足,但是对于很多开发者和DBA来说,如何将MySQL稳定、高效、简单的同步到ClickHouse却很困难。本文对比了NineData、MaterializeMySQL(ClickHouse自带)、Bifrost三款产品,看看他们在同步时的差异。对比结果概述整体上......
  • mysql中对于 GROUP_CONCAT 函数的长度限制处理
    今天才知,原来GROUP_CONCAT函数返回的长度默认是有限制的:mysql>SHOWVARIABLESLIKE"group_concat_max_len";可见,默认是最长不超过1024。 修改mysql的配置参数增加限制:vi/etc/my.cnf[mysqld]group_concat_max_len=1024000 注意,有些文章里说设置成-1也可以,意......
  • mysql表加锁与解锁
    一、加锁表名:test1、加读锁#读锁,锁定之后,无论是当前线程还是其他线程均只能读操作,写操作全部被堵塞,备份时可以用,避免在备份过程中,表被更新LOCKTABLEStestREAD; 2、加写锁#写锁,锁定之后,只有当前线程可以进行读操作和写操作,其他线程读操作和写操作均被堵塞.LOCKTABL......