700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > MySql 根据身份证号来判别所属省份年龄及性别

MySql 根据身份证号来判别所属省份年龄及性别

时间:2018-10-29 14:46:01

相关推荐

MySql 根据身份证号来判别所属省份年龄及性别

一、背景:

新项目要从别的系统迁移用户表信息,老的用户表里的数据有很多不规范的数据,需要通过表里的身份证号获取用户的省份、年龄、性别。

二、获取方式:

1.通过身份证号获取省份。

SELECT CASE LEFT(`sfzh`,2) WHEN 11 THEN '北京' WHEN 12 THEN '天津' WHEN 13 THEN '河北' WHEN 14 THEN '山西' WHEN 15 THEN '内蒙古' WHEN 21 THEN '辽宁'WHEN 22 THEN '吉林' WHEN 23 THEN '黑龙江' WHEN 31 THEN '上海' WHEN 32 THEN '江苏' WHEN 33 THEN '浙江' WHEN 34 THEN '安徽' WHEN 35 THEN '福建' WHEN36 THEN '江西'WHEN 37 THEN '山东' WHEN 41 THEN '河南' WHEN 42 THEN '湖北' WHEN 43 THEN '湖南' WHEN 44 THEN '广东' WHEN 45 THEN '广西' WHEN 46 THEN '海南' WHEN 50 THEN '重庆' WHEN 51 THEN '四川'WHEN 52 THEN '贵州' WHEN 53 THEN '云南' WHEN 54 THEN '西藏' WHEN 61 THEN '陕西' WHEN 62 THEN '甘肃' WHEN 63 THEN '青海' WHEN 64 THEN '宁夏' WHEN 65 THEN '新疆' END AS 所属省份FROM `t_user`

2.通过身份证号获取年龄。

SELECT (YEAR(CURDATE()) - SUBSTRING(`sfzh`,7,4)) AS 年龄 FROM t_user

3.通过身份证号获取性别。

SELECT IF (MOD(SUBSTRING(`sfzh`,17,1),2),'男','女') AS 性别 FROM t_user

4.通过身份证获取省份、性别、年龄。

SELECT sfzh AS 身份证号,CASE LEFT(`sfzh`,2) WHEN 11 THEN '北京' WHEN 12 THEN '天津' WHEN 13 THEN '河北' WHEN 14 THEN '山西' WHEN 15 THEN '内蒙古' WHEN 21 THEN '辽宁'WHEN 22 THEN '吉林' WHEN 23 THEN '黑龙江' WHEN 31 THEN '上海' WHEN 32 THEN '江苏' WHEN 33 THEN '浙江' WHEN 34 THEN '安徽' WHEN 35 THEN '福建' WHEN36 THEN '江西'WHEN 37 THEN '山东' WHEN 41 THEN '河南' WHEN 42 THEN '湖北' WHEN 43 THEN '湖南' WHEN 44 THEN '广东' WHEN 45 THEN '广西' WHEN 46 THEN '海南' WHEN 50 THEN '重庆' WHEN 51 THEN '四川'WHEN 52 THEN '贵州' WHEN 53 THEN '云南' WHEN 54 THEN '西藏' WHEN 61 THEN '陕西' WHEN 62 THEN '甘肃' WHEN 63 THEN '青海' WHEN 64 THEN '宁夏' WHEN 65 THEN '新疆' END AS 所属省份,(YEAR(CURDATE()) - SUBSTRING(`sfzh`,7,4)) AS 年龄,IF (MOD(SUBSTRING(`sfzh`,17,1),2),'男','女') AS 性别 FROM t_user

三、总结:

感谢大家的关注 分享 收藏 评论,关注:Java学习生

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。