sql递归查询判断身份证是否合规
时间: 2023-06-13 15:04:01 浏览: 134
身份证号合规验证
可以使用递归查询和正则表达式来判断身份证是否合规。以下是一个示例代码:
```
WITH RECURSIVE ids(id, code, level) AS (
SELECT id, code, 1 FROM ids_table WHERE id = 'xxx'
UNION ALL
SELECT id, code, level + 1 FROM ids, ids_table WHERE SUBSTRING(code, level+1, 1) = id AND level < 17
)
SELECT COUNT(*) FROM ids WHERE level = 17 AND code SIMILAR TO '^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}[0-9X]$';
```
这个查询首先使用递归查询将身份证号码的每一位拆分为一个子字符串,并将其与一个匹配规则进行比较。如果身份证号码符合规则,则最终结果为1,否则为0。其中,'xxx'需要替换为具体的身份证号码。
阅读全文