Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql start with

作者:紛手也是一茽の媄丽   发布日期:2026-01-06   浏览:47

-- 使用 START WITH 和 CONNECT BY 进行层次查询的示例

-- 假设有一个表 emp,包含员工信息和他们的上级领导关系
CREATE TABLE emp (
    emp_id INT PRIMARY KEY,
    emp_name VARCHAR(50),
    manager_id INT
);

-- 插入一些示例数据
INSERT INTO emp (emp_id, emp_name, manager_id) VALUES
(1, 'Alice', NULL),  -- Alice 是 CEO,没有上级
(2, 'Bob', 1),      -- Bob 的上级是 Alice
(3, 'Charlie', 1),  -- Charlie 的上级是 Alice
(4, 'David', 2),    -- David 的上级是 Bob
(5, 'Eve', 2);      -- Eve 的上级是 Bob

-- 使用 START WITH 和 CONNECT BY 查询整个组织结构
SELECT emp_name, LEVEL
FROM emp
START WITH manager_id IS NULL  -- 从没有上级的员工(即 CEO)开始
CONNECT BY PRIOR emp_id = manager_id  -- 根据上下级关系进行递归查询
ORDER SIBLINGS BY emp_id;  -- 按照插入顺序排序

-- 解释:
-- 1. START WITH 子句指定了查询的起始点,这里是没有任何上级的员工(CEO)。
-- 2. CONNECT BY 子句定义了递归关系,这里是指定当前行的 emp_id 应该等于下一行的 manager_id。
-- 3. LEVEL 是一个伪列,表示当前行在层次结构中的级别(深度)。
-- 4. ORDER SIBLINGS BY 用于保持同一级别的记录按照指定的顺序排列。

上一篇:mysql count distinct

下一篇:mysql leftjoin

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站