我是靠谱客的博主 勤劳柠檬,最近开发中收集的这篇文章主要介绍mysql 身份证号码判断,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.位数判断

LENGTH(d.cjdxzjhm) =15 or LENGTH(d.cjdxzjhm) = 18

2.校验含有中文字符
length表示字节个数,char_length表示字符,一个中文对应3个字节

length(d.cjdxzjhm)<>char_length(d.cjdxzjhm)

3.格式校验,匹配15和18位

d.cjdxzjhm regexp '^[1-9][[:digit:]]{7}((0[[:digit:]])|(1[0-2]))(([0|1|2][[:digit:]])|3[0-1])[[:digit:]]{3}$|^[1-9][[:digit:]]{5}[1-9][[:digit:]]{3}((0[[:digit:]])|(1[0-2]))(([0|1|2][[:digit:]])|3[0-1])[[:digit:]]{3}([0-9]|X)$'

4.判断年份

substr(d.cjdxzjhm,7,4) not between '1900' and '2014'

5.判断月份

substr(d.cjdxzjhm,11,2) not between '01' and '12'

6.判断日

substr(d.cjdxzjhm,13,2) not between 1 and DATEDIFF(date_add(concat(substr(d.cjdxzjhm,7,4),substr(d.cjdxzjhm,11,2),'01'),interval 1 month ),concat(substr(d.cjdxzjhm,7,4),substr(d.cjdxzjhm,11,2),'01'))

7.不能包含特殊字符,0表示不包含,大于0表示包含

instr(d.cjdxzjhm,'*')=0
instr(d.cjdxzjhm,'*')>0

最后

以上就是勤劳柠檬为你收集整理的mysql 身份证号码判断的全部内容,希望文章能够帮你解决mysql 身份证号码判断所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部