Перейти к содержимому
Последнее обновление

MASK

Описание​

Функция MASK используется для маскирования данных с целью защиты конфиденциальной информации. По умолчанию она заменяет прописные буквы на X, строчные буквы на x, а цифры на n.

Синтаксис​

MASK(<str>[, <upper>[, <lower>[, <number>]]])

Параметры​

ПараметрОписание
<str>Строка для маскирования. Тип: VARCHAR
<upper>Символ для замены прописных букв, по умолчанию X (необязательный параметр). Тип: VARCHAR
<lower>Символ для замены строчных букв, по умолчанию x (необязательный параметр). Тип: VARCHAR
<number>Символ для замены цифр, по умолчанию n (необязательный параметр). Тип: VARCHAR

Возвращаемое значение​

Возвращает строку типа VARCHAR, в которой буквы и цифры заменены.

Особые случаи:

  • Если какой-либо параметр равен NULL, возвращает NULL
  • Символы, не являющиеся буквами или цифрами, остаются без изменений
  • Если параметры, задающие символы замены, содержат несколько символов, используется только первый символ

Примеры​

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