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