mysql正则表达式过率身份证号
时间: 2023-08-09 16:01:33 浏览: 113
正则表达式校验身份证号码
5星 · 资源好评率100%
MySQL正则表达式可以用于过滤身份证号。身份证号是由18位数字和字符组成的,具体格式是前6位是行政区划代码,接下来8位是出生年月日,然后是4位的顺序码,最后一位是校验码。根据这些规则,可以使用MySQL正则表达式来匹配身份证号。
下面是一个示例正则表达式,用于匹配身份证号的格式:
^[1-9]\d{5}(18|19|([2-9]\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$
在MySQL中可以使用REGEXP关键字来进行正则表达式的匹配。示例查询语句如下:
SELECT * FROM table_name WHERE column_name REGEXP '^[1-9]\d{5}(18|19|([2-9]\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$';
以上语句将会返回符合身份证号格式的所有数据。
需要注意的是,以上示例只是匹配了身份证号的格式,并不能确保该身份证号是真实有效的。对于真实有效性的验证,需要考虑到身份证号的校验码计算等更复杂的逻辑,可以结合使用MySQL的其他函数来完成该验证。
阅读全文