组织编号使用层级方式,比如总公司是 0001,分公司是 00010100,分公司部门是 000101000010。
每一级都使用直接上级的编号并加上本级编号。
现在给定任意一个部门编号,查询出他本身及其所有上级,请问 SQL 该怎么编写呢?
数据库是 MySQL。
先谢过各位大佬解惑。
1
linauror 2019 年 4 月 28 日
既然编号这么有规律,程序先直接按长度取编号,可以确定出上级编号及上上级编号...,再去查呢
|
3
imicksoft 2019 年 4 月 28 日
|
4
F281M6Dh8DXpD1g2 2019 年 4 月 28 日
mysql 做不到
需要使用 recursive cte |
5
chenset 2019 年 4 月 28 日
|
6
youyaang 2019 年 4 月 28 日
SELECT MID(id, LENGTH(id)-4, LENGTH(id)) AS LastLvId FROM DB_xx;
没测试过,不知道能不能用=。= |
7
xinyewdz 2019 年 4 月 28 日
慎用 join 操作
|
8
littlewing 2019 年 4 月 28 日
不管怎样都是全表扫描
所以为什么不把层级关系存起来呢 |
9
xxxy 2019 年 4 月 28 日
我有一个简单的方法。用程序串行去查询。
|