跳到主要内容

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', '*', '#', '$') |
+----------------------------------+
| ###$$$*** |
+----------------------------------+