sql语句问题

小小白。。。。 发布于 2017/04/04 11:00
阅读 202
收藏 0
id name code parent_id
1 北京市    11  
2 市辖区 1101  
3 东城区 110101  
4 街道办事处 110101001  
5 社区居委会 110101001001  

 

怎么用sql 语句绑定他的上级id  还有其他省市的数据(60万)   求大神指点

 

加载中
0
Java_Coder
Java_Coder

规律是这种的? 

如果数据库中的A记录的code以B记录code开始的且最短,那A就是B最邻近的下级? 比如id为2的1101是以id为1的11开始的且最短,则id为2的parent_id为1

0
h
heqian888

--先查下有没有重复的,没有的话按下面的语句处理,以此类推,注意:下面是postgresql的写法

update tab a set parent_id  = b.id from tab as b where a.length(a.code) =12 and left(a.code,9) = b.code

0
JeffreyLin
JeffreyLin

update area a, area p set a.parent_id=p.id
where p.code=left(a.code, case length(a.code) when 12 then 9 when 9 then 6 when 6 then 4 when 4 then 2 else 0 end)

0
江上数峰青
江上数峰青

用两条SQL,123级别一条,45级别用一条,就是截取字符串,123的上级ID等于自身ID

江上数峰青
江上数峰青
等于自身ID截去后两位,45级截去后三位
返回顶部
顶部