表结构:表名 tableA 字段:id,parent_id ,title
需求:查询出树形结构存在数据库中的数据
SELECT
sys_connect_by_path(
title,
'+'
) title,
id
FROM
tableA
WHERE
visible = '1' START WITH id ='0001' CONNECT BY parent_id = PRIOR id
语法解释:START WITH:以……开始
CONNECT BY:用……连接
prior:这棵树中年级最大的是谁
sys_connect_by_path:将树形查询到的指定字段title以+号连接(sys_connect_by_path函数就是从start with开始的地方开始遍历,并记下其遍历到的节点),也就是说这个语法有记忆功能,第一次title是小头爸爸,第二次是大头儿子,那么第二个数据结果就是【+小头爸爸+大头儿子】
翻译过来就是:查询以id='0001'为起点,parent_id等于‘0001’的全部数据,并且title用+号分割。
案例结果示意图:
全文:相当于小头爸爸,id='0001'的父节点
S店:大头儿子,也就是叶子节点。
具体详细流程可以参考:https://mp.csdn.net/postedit/103250347
(这个链接也是我参考过的链接)