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

MASK_LAST_N

Описание​

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

Синтаксис​

MASK_LAST_N(<str>[, <n>])

Параметры​

ПараметрОписание
<str>Строка для маскирования. Тип: VARCHAR
<n>Количество последних N байтов для маскирования (необязательный параметр; по умолчанию маскируется вся строка). Тип: INT

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

Возвращает значение типа VARCHAR: строку с замаскированными последними N байтами.

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

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

Примеры​

  1. Базовое использование: маскирование последних 4 байтов
SELECT mask_last_n('1234-5678', 4);
+-----------------------------+
| mask_last_n('1234-5678', 4) |
+-----------------------------+
| 1234-nnnn |
+-----------------------------+
  1. Без указания n (маскируется вся строка)
SELECT mask_last_n('abc123');
+----------------------+
| mask_last_n('abc123') |
+----------------------+
| xxxnnn |
+----------------------+
  1. n превышает длину строки
SELECT mask_last_n('Hello', 100);
+---------------------------+
| mask_last_n('Hello', 100) |
+---------------------------+
| Xxxxx |
+---------------------------+
  1. Обработка значения NULL
SELECT mask_last_n(NULL, 5);
+----------------------+
| mask_last_n(NULL, 5) |
+----------------------+
| NULL |
+----------------------+
  1. n равно 0 (ни один символ не маскируется)
SELECT mask_last_n('Hello123', 0);
+----------------------------+
| mask_last_n('Hello123', 0) |
+----------------------------+
| Hello123 |
+----------------------------+
  1. n превышает длину строки (маскируется вся строка)
SELECT mask_last_n('Test', 100);
+--------------------------+
| mask_last_n('Test', 100) |
+--------------------------+
| Xxxx |
+--------------------------+
  1. Маскирование доменной части адреса электронной почты
SELECT mask_last_n('user@example.com', 11);
+-------------------------------------+
| mask_last_n('user@example.com', 11) |
+-------------------------------------+
| user@xxxxxxx.xxx |
+-------------------------------------+
  1. Маскирование последних 4 цифр номера телефона
SELECT mask_last_n('13812345678', 4);
+-------------------------------+
| mask_last_n('13812345678', 4) |
+-------------------------------+
| 1381234nnnn |
+-------------------------------+
  1. Сочетание букв, цифр и специальных символов
SELECT mask_last_n('ABC-123-xyz', 7);
+--------------------------------+
| mask_last_n('ABC-123-xyz', 7) |
+--------------------------------+
| ABC-nnn-xxx |
+--------------------------------+
  1. Обработка символов UTF-8 (маскирование по байтам)
SELECT mask_last_n('Hello你好123', 9);
+--------------------------------+
| mask_last_n('Hello你好123', 9) |
+--------------------------------+
| Hello你好nnn |
+--------------------------------+
SELECT mask_last_n('eeeéèêëìí1234');
+------------------------------------+
| mask_last_n('eeeéèêëìí1234') |
+------------------------------------+
| xxxéèêëìínnnn |
+------------------------------------+