mysql 中 connect by prior 语法
时间: 2023-08-29 09:13:39 浏览: 194
MySQL多种递归查询方法.docx
5星 · 资源好评率100%
"connect by prior" 是 MySQL 中用于实现层次查询的语法,它可以用于查询树形结构数据、组织架构等需要按层次结构展示的数据。
语法如下:
```
SELECT column1, column2, ... FROM table_name
WHERE condition
CONNECT BY condition
```
其中,condition 是递归查询条件,可以使用 "PRIOR column_name" 来表示当前行的父节点。同时,要注意在查询语句中必须包含 "START WITH" 子句,用于指定查询的起始节点。
示例:
假设有如下表结构:
```
CREATE TABLE dept (
id INT PRIMARY KEY,
name VARCHAR(20),
parent_id INT
);
```
表中存储了部门信息,其中 parent_id 表示父部门的 id,如果是根节点则为 NULL。
现在需要查询所有部门的层次结构,可以使用如下语句:
```
SELECT name, id, parent_id, level
FROM dept
START WITH parent_id IS NULL
CONNECT BY PRIOR id = parent_id;
```
这个语句的作用是从 dept 表中查询根节点为 NULL 的记录,然后递归查询其下所有子节点,直到查询完整个部门结构树。
其中 level 表示当前行的层级,根节点的 level 为 1,其子节点的 level 为 2,以此类推。
阅读全文