
组织编号使用层级方式,比如总公司是 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 日 我有一个简单的方法。用程序串行去查询。 |