如何在PostgreSQL中屏蔽电子邮件
如何在PostgreSQL中屏蔽电子邮件地址字符串 我想屏蔽电子邮件如下 testemail@gmail.com进入te*****il@gmail.com如何在PostgreSQL中屏蔽电子邮件,postgresql,Postgresql,如何在PostgreSQL中屏蔽电子邮件地址字符串 我想屏蔽电子邮件如下 testemail@gmail.com进入te*****il@gmail.com 取消屏蔽电子邮件域前的前两个和最后两个字符(@ (符号) 使用遮罩在之间的所有字符* 我已尝试使用 定位以识别@符号 位置左侧字符的长度 然而,PostgreSQL没有一个类似于excel的简洁解决方案=REPLACE(旧文本、开始字符、数字字符、新文本),您可以在这里设置开始字符和数字字符尝试以下方法: SELECT overlay
- 取消屏蔽电子邮件域前的前两个和最后两个字符(@ (符号)
- 使用遮罩在之间的所有字符*
以识别@符号定位
位置左侧字符的长度
=REPLACE(旧文本、开始字符、数字字符、新文本)
,您可以在这里设置开始字符和数字字符
尝试以下方法:
SELECT overlay(
'testemail@gmail.com'
placing repeat('*',
position('@' in 'testemail@gmail.com') - 5
)
from 3
for position('@' in 'testemail@gmail.com') - 5
);
overlay
---------------------
te*****il@gmail.com
(1 row)
您可以从中创建一个SQL函数,以便:
CREATE FUNCTION mask_email(text) RETURNS text
LANGUAGE SQL IMMUTABLE AS
$$SELECT overlay($1 placing repeat('*', position('@' in $1) - 5) from 3 for position('@' in $1) - 5)$$;