Key_Value 形式 存储_5级省市城乡划分代码 (mysql 8.0 实例)

举报
小Tomkk 发表于 2024/03/01 11:00:02 2024/03/01
【摘要】 Key_Value 形式 存储_5级省市城乡划分代码

这个案列是很久以前 我面试一个家公司一个面试题 ,公司的老板是一个在 google 工作过的 工程师,后来回上海创业了,现在回想起来很有意思。

---



---

# 数据准备 

我们 用2022年度全国统计用区划代码和城乡划分代码 (5级)做实例 
[下载全国统计用区划代码和城乡划分代码]

0.png


先建表

CREATE TABLE `china_code` (
  `chinacode` bigint DEFAULT NULL,
  `value` varchar(100) DEFAULT NULL
) ENGINE=MyISAM ;

select * from  china_code


# 一、举例导入数据 

insert into china_code(chinacode,value) values
('310000000000','上海市'),
('310100000000','直辖区'),
('310112000000','闵行区'),
('310112102000','七宝镇'),
('310112102042','华林路第一居委会'),
('310104000000','徐汇区'),
('310104011000','田林街道'),
('310104011033','千鹤第五居委会'),
('110000000000','北京市'),
('110100000000','直辖区'),
('110105000000','朝阳区'),
('110105009000','亚运村街道'),
('110105009057','民族园社区居民委员会'),
('230000000000','黑龙江省'),
('231100000000','黑河市'),
('231124000000','孙吴县'),
('231124100000','孙吴镇'),
('231124100218','镇南村委会'),
('510000000000','四川省'),
('513200000000','阿坝藏族羌族自治州'),
('513201000000','马尔康市'),
('513201100000','马尔康镇'),
('513201100212','查米村村民委员会')

# 二 、用数学函数获取省和直辖市

以上2个函数都是余数函数
select *  from  china_code where chinacode%1000000000=0
select *  from  china_code where mod(chinacode,1000000000)=0

# 三、省,市,区,村,居委会(5级)

select a.chinacode,a.value,b.chinacode,b.value,c.chinacode,c.value,d.chinacode,d.value,e.chinacode,e.value from  china_code a
left join china_code b on left(a.chinacode,2)=left(b.chinacode,2) 
left join china_code c on left(b.chinacode,4)=left(c.chinacode,4) 
left join china_code d on left(c.chinacode,6)=left(d.chinacode,6)
left join china_code e on left(d.chinacode,8)=left(e.chinacode,8) 
where   a.chinacode%1000000000=0 
and b.chinacode%10000000=0 and b.chinacode%1000000000!=0
and c.chinacode%1000000=0 and  c.chinacode%100000000!=0
and d.chinacode%1000=0 and   d.chinacode%1000000!=0
and e.chinacode%1000!=0




# 总结

希望这个例子对大家有帮助 ,也许其他的场景也可以使用。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。