MySQL验证身份证是否正确语句

IDcardNum为身份证字段
IDinformatoin为数据库表
直接通过SQL输出身份证号码数据是否符合国家标准

SELECT IDcardNum,
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=0,
		if(substr(ep.IDcardNum,18,1)="1","正确","错误"),
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=1,
		if(substr(ep.IDcardNum,18,1)="0","正确","错误"),
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=2,
		if(substr(ep.IDcardNum,18,1)="X","正确","错误"),
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=3,
		if(substr(ep.IDcardNum,18,1)="9","正确","错误"),
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=4,
		if(substr(ep.IDcardNum,18,1)="8","正确","错误"),
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=5,
		if(substr(ep.IDcardNum,18,1)="7","正确","错误"),
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=6,
		if(substr(ep.IDcardNum,18,1)="6","正确","错误"),
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=7,
		if(substr(ep.IDcardNum,18,1)="5","正确","错误"),
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=8,
		if(substr(ep.IDcardNum,18,1)="4","正确","错误"),
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=9,
		if(substr(ep.IDcardNum,18,1)="3","正确","错误"),
	IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=10,
		if(substr(ep.IDcardNum,18,1)="2","正确","错误"),"错误"))))))))))) FROM `IDinformatoin` as ep
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值