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

MASK_FIRST_N

Описание​

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

Синтаксис​

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

Параметры​

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

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

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

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

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

Примеры​

  1. Базовое использование: маскирование первых 4 байт
SELECT mask_first_n('1234-5678', 4);
+------------------------------+
| mask_first_n('1234-5678', 4) |
+------------------------------+
| nnnn-5678 |
+------------------------------+
  1. Без указания n (маскируется вся строка)
SELECT mask_first_n('abc123');
+-----------------------+
| mask_first_n('abc123') |
+-----------------------+
| xxxnnn |
+-----------------------+
  1. n превышает длину строки
SELECT mask_first_n('Hello', 100);
+----------------------------+
| mask_first_n('Hello', 100) |
+----------------------------+
| Xxxxx |
+----------------------------+
  1. Обработка значения NULL
SELECT mask_first_n(NULL, 5);
+-----------------------+
| mask_first_n(NULL, 5) |
+-----------------------+
| NULL |
+-----------------------+
  1. n равен 0 (символы не маскируются)
SELECT mask_first_n('Hello123', 0);
+-----------------------------+
| mask_first_n('Hello123', 0) |
+-----------------------------+
| Hello123 |
+-----------------------------+
  1. n превышает длину строки (маскируется вся строка)
SELECT mask_first_n('Test', 100);
+---------------------------+
| mask_first_n('Test', 100) |
+---------------------------+
| Xxxx |
+---------------------------+
  1. Маскирование начальной части адреса электронной почты
SELECT mask_first_n('user@example.com', 6);
+-------------------------------------+
| mask_first_n('user@example.com', 6) |
+-------------------------------------+
| xxxx@xxample.com |
+-------------------------------------+
  1. Маскирование первых 3 цифр номера телефона
SELECT mask_first_n('13812345678', 3);
+--------------------------------+
| mask_first_n('13812345678', 3) |
+--------------------------------+
| nnn12345678 |
+--------------------------------+
  1. Сочетание букв, цифр и специальных символов
SELECT mask_first_n('Abc-123-XYZ', 7);
+---------------------------------+
| mask_first_n('Abc-123-XYZ', 7) |
+---------------------------------+
| Xxx-nnn-XYZ |
+---------------------------------+
  1. Обработка символов UTF-8 (побайтовое маскирование)
SELECT mask_first_n('ṭṛWorld123', 7);
+-----------------------------------+
| mask_first_n('ṭṛWorld123', 7) |
+-----------------------------------+
| ṭṛXorld123 |
+-----------------------------------+
SELECT mask_first_n('eeeéèêëìí1234');
+-------------------------------------+
| mask_first_n('eeeéèêëìí1234') |
+-------------------------------------+
| xxxéèêëìínnnn |
+-------------------------------------+