MASK_OUTER
功能概述
将字符串两端各指定长度的字符替换为掩码字符,保留中间部分。常用于隐藏手机号首尾、银行卡号前缀等场景。
语法
MASK_OUTER(<str>, <margin1>, <margin2> [, <mask_char>])
参数说明
<str>
<str>
:STRING 类型,待处理的原始字符串。
<margin1>
<margin1>
:INT 类型,屏蔽左端的字符数。
<margin2>
<margin2>
:INT 类型,屏蔽右端的字符数。
<mask_char>
<mask_char>
:STRING 类型,可选,替换两端字符的掩码字符,默认为 'X'
'X'
。
<str>
<str>
为 NULL 时返回 NULL。
<margin1> + <margin2>
<margin1> + <margin2>
大于等于字符串长度时所有字符都被替换。
使用示例
-- 屏蔽手机号前三位和后四位,保留中间
SELECT mask_outer('13812345678', 3, 4);
-- XXX1234XXXX
-- 自定义掩码字符
SELECT mask_outer('13812345678', 3, 4, '*');
-- ***1234****
-- margin 均为 0:不替换任何字符
SELECT mask_outer('hello', 0, 0);
-- hello
SELECT mask_outer(NULL, 3, 4);
-- NULL
相关文档