MASK
描述
MASK 函数主要作用是对数据进行屏蔽,以保护敏感信息,常用于数据脱敏场景。其行为默认是将输入的字符串中的大写字母转换为X
,小写字母转换为x
,数字转换为n
。
语法
MASK(<str> [, <upper> [, <lower> [, <number> ]]])
参数
参数 | 说明 |
---|---|
<str> | 需要被脱敏的数据 |
<upper> | 可选参数,替换大写字母字符,默认是X 。如果输入多个字符串,则会取第一个字符,如果输入的是非 ASCII 字符, 则会取第一个字节 |
<lower> | 可选参数,替换小写字母字符,默认是x 。如果输入多个字符串,则会取第一个字符,如果输入的是非 ASCII 字符, 则会取第一个字节 |
<number> | 可选参数,替换数字字符,默认是n 。如果输入多个字符串,则会取第一个字符,如果输入的是非 ASCII 字符, 则会取第一个字节 |
返回值
返回字母和数字被替换后的字符串。特殊情况:
- 任意参数中有一个为 NULL,则返回 NULL
- 非字母和数字会原样返回
举例
select mask('abc123EFG');
+-------------------+
| mask('abc123EFG') |
+-------------------+
| xxxnnnXXX |
+-------------------+
select mask(null);
+------------+
| mask(NULL) |
+------------+
| NULL |
+------------+
select mask('abc123EFG', '*', '#', '$');
+----------------------------------+
| mask('abc123EFG', '*', '#', '$') |
+----------------------------------+
| ###$$$*** |
+----------------------------------+