mysql 身份证号脱敏
时间: 2023-04-01 18:00:48 浏览: 87
可以使用函数进行身份证号脱敏,例如使用 SUBSTR 函数截取前面的部分和后面的部分,中间用 * 号代替。具体实现可以参考以下 SQL 语句:
SELECT CONCAT(SUBSTR(id_number, 1, 6), '******', SUBSTR(id_number, 15)) AS id_number FROM table_name;
其中,id_number 是身份证号字段名,table_name 是表名。
相关问题
mysql 身份证脱敏
要在MySQL中对身份证进行脱敏处理,可以使用以下方法:
方法一:使用CONCAT函数和字符串函数来处理身份证号码。可以使用LEFT函数取身份证号前3位,使用RIGHT函数取身份证号后3位,中间用星号替代。例如,使用以下代码来处理身份证号:
CONCAT( LEFT(SAFE_DIRECTOR_ID_CARD,3), '************' , RIGHT(SAFE_DIRECTOR_ID_CARD,3)) as idcard
请注意,这种方法将会直接替换中间部分的数字为星号,不会进行判空处理。
方法二:如果需要对空值进行处理,可以使用IF语句来判断身份证号是否为空。如果为空,则返回空字符串;如果不为空,则使用CONCAT函数和字符串函数进行脱敏处理。例如,使用以下代码来处理身份证号:
IF( (SAFE_DIRECTOR_ID_CARD is null or SAFE_DIRECTOR_ID_CARD='' ) , '', CONCAT( LEFT(SAFE_DIRECTOR_ID_CARD,3), '************' , RIGHT(SAFE_DIRECTOR_ID_CARD,3)) ) as safeDirectorIdCard
这样,如果身份证号为空,返回空字符串;如果不为空,则进行脱敏处理。
总结:在MySQL中对身份证进行脱敏处理,可以使用CONCAT函数和字符串函数来替换中间的数字为星号。如果需要对空值进行处理,可以使用IF语句来判断身份证号是否为空。
mysql 身份证号码正则表达式
以下是一个简单的 MySQL 正则表达式,可以用于验证身份证号码:
```sql
SELECT * FROM table_name WHERE id_number REGEXP '^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[0-9Xx]$';
```
这个正则表达式匹配中国大陆的第一代和第二代身份证号码。如果您需要匹配其他类型的身份证号码,请自行修改正则表达式。