MASK_INNER
功能概述
保留字符串两端各指定长度的字符,将中间部分替换为掩码字符。常用于隐藏手机号、身份证号等敏感信息的中间段。
语法
MASK_INNER(<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_inner('13812345678', 3, 4);
-- 138XXXX5678
-- 自定义掩码字符
SELECT mask_inner('13812345678', 3, 4, '*');
-- 138****5678
-- margin 均为 0:全部替换
SELECT mask_inner('hello', 0, 0);
-- XXXXX
SELECT mask_inner(NULL, 3, 4);
-- NULL
相关文档