Последнее обновление
MASK
Описание
Функция MASK используется для маскирования данных с целью защиты конфиденциальной информации. По умолчанию она заменяет прописные буквы на X, строчные буквы на x, а цифры на n.
Синтаксис
MASK(<str>[, <upper>[, <lower>[, <number>]]])
Параметры
| Параметр | Описание |
|---|---|
<str> | Строка для маскирования. Тип: VARCHAR |
<upper> | Символ для замены прописных букв, по умолчанию X (необязательный параметр). Тип: VARCHAR |
<lower> | Символ для замены строчных букв, по умолчанию x (необязательный параметр). Тип: VARCHAR |
<number> | Символ для замены цифр, по умолчанию n (необязательный параметр). Тип: VARCHAR |
Возвращаемое значение
Возвращает строку типа VARCHAR, в которой буквы и цифры заменены.
Особые случаи:
- Если какой-либо параметр равен NULL, возвращает NULL
- Символы, не являющиеся буквами или цифрами, остаются без изменений
- Если параметры, задающие символы замены, содержат несколько символов, используется только первый символ
Примеры
- Базовое использование: правила замены по умолчанию
SELECT mask('abc123XYZ');
+-------------------+
| mask('abc123XYZ') |
+-------------------+
| xxxnnnXXX |
+-------------------+
- Пользовательские символы замены
SELECT mask('abc123XYZ', '*', '#', '$');
+----------------------------------+
| mask('abc123XYZ', '*', '#', '$') |
+----------------------------------+
| ###$$$*** |
+----------------------------------+
- Специальные символы остаются без изменений
SELECT mask('Hello-123!');
+--------------------+
| mask('Hello-123!') |
+--------------------+
| Xxxxx-nnn! |
+--------------------+
- Обработка значения NULL
SELECT mask(NULL);
+------------+
| mask(NULL) |
+------------+
| NULL |
+------------+
- Строка, состоящая только из цифр
SELECT mask('1234567890');
+--------------------+
| mask('1234567890') |
+--------------------+
| nnnnnnnnnn |
+--------------------+
- Строка, состоящая только из букв
SELECT mask('AbCdEfGh');
+------------------+
| mask('AbCdEfGh') |
+------------------+
| XxXxXxXx |
+------------------+
- Обработка пустой строки
SELECT mask('');
+----------+
| mask('') |
+----------+
| |
+----------+
- Замена одним символом (при указании нескольких используется первый)
SELECT mask('Test123', 'ABC', 'xyz', '999');
+--------------------------------------+
| mask('Test123', 'ABC', 'xyz', '999') |
+--------------------------------------+
| Axxx999 |
+--------------------------------------+
- Маскирование номера кредитной карты
SELECT mask('1234-5678-9012-3456');
+-----------------------------+
| mask('1234-5678-9012-3456') |
+-----------------------------+
| nnnn-nnnn-nnnn-nnnn |
+-----------------------------+
- Маскирование адреса электронной почты
SELECT mask('user@example.com');
+--------------------------+
| mask('user@example.com') |
+--------------------------+
| xxxx@xxxxxxx.xxx |
+--------------------------+
SELECT mask('eeeéèêëìí1234');
+-----------------------------+
| mask('eeeéèêëìí1234') |
+-----------------------------+
| xxxéèêëìínnnn |
+-----------------------------+