项目场景:
示例:项目涉及到敏感数据,例如手机号、姓名等使用mysql存储函数解决。
解决方案:
提示:以下主要使用mysql函数CONCAT、LEFT、RIGHT。?
1、CONCAT(str1,str2,…)??
? ? ? CONCAT()函数返回结果为连接参数产生的字符串。如有任何一个参数为NULL?,则返回值为?NULL。
2、LEFT(string,length)??
? ? ? LEFT()函数是一字符串函数,它返回具有指定长度的字符串的左边部分。
3、RIGHT(string,length)??
? ? ? RIGHT()函数是一字符串函数,它返回具有指定长度的字符串的右边部分。
BEGIN
DECLARE temp VARCHAR(50) DEFAULT '';
#判断值进行脱敏处理
#身份证
if f_type = 1 AND f_content IS NOT NULL AND f_content then
set temp = CONCAT(LEFT(f_content,4), '************' ,RIGHT(f_content,2));
#姓名
elseif f_type = 2 AND f_content IS NOT NULL AND f_content != '' then
set temp = (if(LENGTH(f_content)>8,CONCAT(LEFT(f_content,1), '*' ,right(f_content,1)),CONCAT(LEFT(f_content,1), '*' )));
#手机号
elseif f_type = 3 AND f_content IS NOT NULL AND f_content != '' then
set temp = CONCAT(LEFT(f_content,3), '****' ,RIGHT(f_content,4));
else
set temp = ' 暂无信息';
end if;
RETURN temp;
END
?结果如下:
?
|