求一个SQL或存储过程的写法 数据库中保存着一个人的身份证号码、出生日期、性别等资料,现在由于担心在录入资料时出现错误,所以要核对资料的正确性,要示判断身份证号码中的出生日期、性别和数据库中录入的出生日期、性别是否相符我觉得用SQL查不出来,需要用存储过程才行有谁能给个写法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用SQL还是可以吧,判断身份证号是15位还是18位,主要是年取4位还是2位及性别,再与你的表中数据对比即可mid(身份证号,7,if(length(身份证号)=15,6,10):出生日 SQL 可以查出来。if(length(身份证号)=15,concat('19',mid(身份证号,7,6)),mid(身份证号,7,8)) -- 出生日期if(length(身份证号)=15,mid(身份证号,15,1),mid(身份证号,17,1)) -- 性别,奇男,偶女 假设你的 出生日期,是日期型,性别是数字 0女,1男select *from xxxwhere if(length(身份证号)=15,concat('19',mid(身份证号,7,6)),mid(身份证号,7,8))!=出生日期and if(length(身份证号)=15,mid(身份证号,15,1),mid(身份证号,17,1)) % 2 != 性别 mid(身份证号,7,if(length(身份证号)=15,6,8):出生日性别不太好判断,结尾有字母 查了一下15位ssddxxyymmddnnp18位ssddxxyyyymmddnnpx最新20位暂缺式中s 省、直辖市、自治区d 市、地区x 县y 出生年m 出生月d 出生日n 顺号p 性别x 较验码18位中第17位为性别 大侠帮忙,菜鸟求助~~~ innodb插件启动失败,怎么办? 请教,MYSQL中有个表有100万记录数,LIKE查询非常的慢,怎么办呢 Mysql连接oracle 8G内存 8cpu服务器 mysql 优化问题: 数据提供程序或其他服务返回E-FAIL状态 【在线等】网站数据库同步与镜像问题! 为什么创建表后没有.MYD和.MYI文件??? mysql 存储过程中的if 判断问题 mysql 查询问题求教 mysql 位运算 怎么处理? 在线等! mysql 的datetime 和date能不能直接比较大小
你的表中数据对比即可
mid(身份证号,7,if(length(身份证号)=15,6,10):出生日
if(length(身份证号)=15,mid(身份证号,15,1),mid(身份证号,17,1)) -- 性别,奇男,偶女
from xxx
where if(length(身份证号)=15,concat('19',mid(身份证号,7,6)),mid(身份证号,7,8))!=出生日期
and if(length(身份证号)=15,mid(身份证号,15,1),mid(身份证号,17,1)) % 2 != 性别
性别不太好判断,结尾有字母
15位
ssddxxyymmddnnp
18位
ssddxxyyyymmddnnpx
最新20位暂缺
式中
s 省、直辖市、自治区
d 市、地区
x 县
y 出生年
m 出生月
d 出生日
n 顺号
p 性别
x 较验码18位中第17位为性别