oracle connect by 的知识自己去查,直接上mysql代码
CREATE TABLE `lzh_test2` (
`AREA_ID` varchar(64) NOT NULL,
`AREA_CODE` varchar(64) DEFAULT NULL,
`FID` varchar(64) DEFAULT NULL,
`AREANAME` varchar(128) NOT NULL,
`FULLNAME` varchar(1024) DEFAULT NULL,
`LEVEL_FLG` char(1) NOT NULL,
PRIMARY KEY (`AREA_ID`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;INSERT INTO `lzh_test2` VALUES ('0', '86', '-1', '全国', '全国', '0');
INSERT INTO `lzh_test2` VALUES ('1', '410000', '0', '河南省', '河南省', '1');
INSERT INTO `lzh_test2` VALUES ('1.1', '410100', '1', '郑州市', '河南省.郑州市', '2');
INSERT INTO `lzh_test2` VALUES ('1.1.1', '410101', '1.1', '市辖区', '河南省.郑州市.市辖区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.10', '410182', '1.1', '荥阳市', '河南省.郑州市.荥阳市', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.11', '410183', '1.1', '新密市', '河南省.郑州市.新密市', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.12', '410184', '1.1', '新郑市', '河南省.郑州市.新郑市', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.13', '410185', '1.1', '登封市', '河南省.郑州市.登封市', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.14', '410111', '1.1', '东开发区', '河南省.郑州市.东开发区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.15', '410109', '1.1', '西开发区', '河南省.郑州市.西开发区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.16', '410110', '1.1', '经济开发区', '河南省.郑州市.经济开发区','3');
INSERT INTO `lzh_test2` VALUES ('1.1.17', '410112', '1.1', '航空港区', '河南省.郑州市.航空港区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.18', '410113', '1.1', '郑东新区', '河南省.郑州市.郑东新区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.2', '410102', '1.1', '中原区', '河南省.郑州市.中原区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.3', '410103', '1.1', '二七区', '河南省.郑州市.二七区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.4', '410104', '1.1', '管城回族区', '河南省.郑州市.管城回族区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.5', '410105', '1.1', '金水区', '河南省.郑州市.金水区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.6', '410106', '1.1', '上街区', '河南省.郑州市.上街区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.7', '410108', '1.1', '惠济区', '河南省.郑州市.惠济区', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.8', '410122', '1.1', '中牟县', '河南省.郑州市.中牟县', '3');
INSERT INTO `lzh_test2` VALUES ('1.1.9', '410181', '1.1', '巩义市', '河南省.郑州市.巩义市', '3');
INSERT INTO `lzh_test2` VALUES ('1.10', '410900', '1', '濮阳市', '河南省.濮阳市', '2');
INSERT INTO `lzh_test2` VALUES ('1.10.1', '410901', '1.10', '市辖区', '河南省.濮阳市.市辖区', '3');
INSERT INTO `lzh_test2` VALUES ('1.10.2', '410902', '1.10', '华龙区', '河南省.濮阳市.华龙区', '3');
INSERT INTO `lzh_test2` VALUES ('1.10.3', '410922', '1.10', '清丰县', '河南省.濮阳市.清丰县', '3');
INSERT INTO `lzh_test2` VALUES ('1.10.4', '410923', '1.10', '南乐县', '河南省.濮阳市.南乐县', '3');
INSERT INTO `lzh_test2` VALUES ('1.10.5', '410926', '1.10', '范县', '河南省.濮阳市.范县', '3');
INSERT INTO `lzh_test2` VALUES ('1.10.6', '410927', '1.10', '台前县', '河南省.濮阳市.台前县', '3');
INSERT INTO `lzh_test2` VALUES ('1.10.7', '410928', '1.10', '濮阳县', '河南省.濮阳市.濮阳县', '3');
INSERT INTO `lzh_test2` VALUES ('1.11', '411000', '1', '许昌市', '河南省.许昌市', '2');
INSERT INTO `lzh_test2` VALUES ('1.11.1', '411001', '1.11', '市辖区', '河南省.许昌市.市辖区', '3');
INSERT INTO `lzh_test2` VALUES ('1.11.2', '411002', '1.11', '魏都区', '河南省.许昌市.魏都区', '3');
INSERT INTO `lzh_test2` VALUES ('1.11.3', '411023', '1.11', '许昌县', '河南省.许昌市.许昌县', '3');
INSERT INTO `lzh_test2` VALUES ('1.11.4', '411024', '1.11', '鄢陵县', '河南省.许昌市.鄢陵县', '3');
INSERT INTO `lzh_test2` VALUES ('1.11.5', '411025', '1.11', '襄城县', '河南省.许昌市.襄城县', '3');
INSERT INTO `lzh_test2` VALUES ('1.11.6', '411081', '1.11', '禹州市', '河南省.许昌市.禹州市', '3');
INSERT INTO `lzh_test2` VALUES ('1.11.7', '411082', '1.11', '长葛市', '河南省.许昌市.长葛市', '3');
INSERT INTO `lzh_test2` VALUES ('1.11.8', '411088', '1.11', '东城区', '河南省.许昌市.东城区', '3');
INSERT INTO `lzh_test2` VALUES ('1.11.9', '411089', '1.11', '开发区', '河南省.许昌市.开发区', '3');select * from lzh_test2;
方法一(mysql 8 ,使用通用表表达式 with as 实现):
-- 向下查
with recursive t1 as (
select t0.* from lzh_test2 t0 where t0.area_id='1.1' -- Anchor member.
union all
select t2.* from lzh_test2 t2, t1 -- Recursive member.
where t2.fid = t1.area_id
)
select * from t1 order by area_id;-- 向上查
with recursive t1 as (
select * from lzh_test2 t0 where t0.area_id='1.1.3' -- Anchor member.
union all
select t2.* from lzh_test2 t2, t1 -- Recursive member.
where t2.area_id = t1.fid
)
select * from t1 order by area_id; -- 向下查,带level
with recursive t1 as (
select 1 lv,t0.* from lzh_test2 t0 where t0.area_id='1.11' -- Anchor member.
union all
select t1.lv+1 lv,t2.* from lzh_test2 t2, t1 -- Recursive member.
where t2.fid = t1.area_id
)
select * from t1 order by area_id;-- 向上查,带level
with recursive t1 as (
select 1 lv,t0.* from lzh_test2 t0 where t0.area_id='1.11.3' -- Anchor member.
union all
select t1.lv+1 lv,t2.* from lzh_test2 t2, t1 -- Recursive member.
where t2.area_id = t1.fid
)
select * from t1 order by area_id;方法二(使用变量实现):
-- 向下查
SELECT b.*
FROM (SELECT @ids AS _ids,
(SELECT @ids := GROUP_CONCAT(area_id) FROM lzh_test2 WHERE FIND_IN_SET(fid, @ids)) AS cids
FROM lzh_test,
(SELECT @ids := '1.10') b
WHERE @ids IS NOT NULL) id,
lzh_test2 b
WHERE FIND_IN_SET(b.area_id, ID._ids) ORDER BY b.area_id-- 向上查
SELECT b.*
FROM (SELECT @ids AS _ids,
(SELECT @ids := GROUP_CONCAT(fid) FROM lzh_test2 WHERE FIND_IN_SET(area_id, @ids)) AS cids
FROM lzh_test2,
(SELECT @ids := '1.1.17') b
WHERE @ids IS NOT NULL) id,
lzh_test2 b
WHERE FIND_IN_SET(b.area_id, ID._ids) ORDER BY b.area_id -- 向下查,带level
SELECT ID.level,
b.*
FROM (SELECT @ids AS _ids,
(SELECT @ids := GROUP_CONCAT(area_id) FROM lzh_test2 WHERE FIND_IN_SET(fid, @ids)) AS cids,
@l := @l + 1 AS LEVEL
FROM lzh_test2,
(SELECT @ids := '1.11', @l := 0) b
WHERE @ids IS NOT NULL) id,
lzh_test2 b
WHERE FIND_IN_SET(b.area_id, ID._ids) ORDER BY LEVEL, b.area_id-- 向上查,带level
SELECT ID.level,
b.*
FROM (SELECT @ids AS _ids,
(SELECT @ids := GROUP_CONCAT(fid) FROM lzh_test2 WHERE FIND_IN_SET(area_id, @ids)) AS cids,
@l := @l + 1 AS LEVEL
FROM lzh_test2,
(SELECT @ids := '1.1.17', @l := 0) b
WHERE @ids IS NOT NULL) id,
lzh_test2 b
WHERE FIND_IN_SET(b.area_id, ID._ids) ORDER BY LEVEL, b.area_id
mysql查询所有父节点名称拼接
转载文章标签 mysql查询所有父节点名称拼接 connect by start with mysql 向上查 文章分类 MySQL 数据库
上一篇:本地启动一个javaagent
下一篇:python 另起一行写入txt
-
java根据表名称获取所有字段
java根据表名称获取所有字段
字段 java sql -
mysql根据父节点查询子节点 mysql递归查询所有父节点
数据表结构id name parent_id1 A 02 B 13 C 14 D 25 E 46 F 17 G 1注:parent_id 为0表示顶级父节点,即A是顶级父辈,没有父节
mysql根据父节点查询子节点 mysql 递归查找父节点 SQL 赋值 父节点 -
java SVG矢量图形编辑器
java处理百度编辑器ueditor上传的图片等多媒体文件 开发项目过程中,一般会涉及到采用富文本编辑器处理“内容”之类的业务,而这内容中,难免会上传各种图片、视频等。而一般采用的富文本编辑器常见的有ueditor百度编辑器、widgEditor等等。我一般采用的百度编辑器ueditor。虽然ueditor可以对上传的图片进行配置,在下载的ueditor文件夹下找到con
java SVG矢量图形编辑器 jsoup Java之百度编辑器图片处理 ueditor java之ueditor