Последнее обновление
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>превышает длину строки, маскирует всю строку
Примеры
- Базовое использование: маскирование первых 4 байт
SELECT mask_first_n('1234-5678', 4);
+------------------------------+
| mask_first_n('1234-5678', 4) |
+------------------------------+
| nnnn-5678 |
+------------------------------+
- Без указания n (маскируется вся строка)
SELECT mask_first_n('abc123');
+-----------------------+
| mask_first_n('abc123') |
+-----------------------+
| xxxnnn |
+-----------------------+
- n превышает длину строки
SELECT mask_first_n('Hello', 100);
+----------------------------+
| mask_first_n('Hello', 100) |
+----------------------------+
| Xxxxx |
+----------------------------+
- Обработка значения NULL
SELECT mask_first_n(NULL, 5);
+-----------------------+
| mask_first_n(NULL, 5) |
+-----------------------+
| NULL |
+-----------------------+
- n равен 0 (символы не маскируются)
SELECT mask_first_n('Hello123', 0);
+-----------------------------+
| mask_first_n('Hello123', 0) |
+-----------------------------+
| Hello123 |
+-----------------------------+
- n превышает длину строки (маскируется вся строка)
SELECT mask_first_n('Test', 100);
+---------------------------+
| mask_first_n('Test', 100) |
+---------------------------+
| Xxxx |
+---------------------------+
- Маскирование начальной части адреса электронной почты
SELECT mask_first_n('user@example.com', 6);
+-------------------------------------+
| mask_first_n('user@example.com', 6) |
+-------------------------------------+
| xxxx@xxample.com |
+-------------------------------------+
- Маскирование первых 3 цифр номера телефона
SELECT mask_first_n('13812345678', 3);
+--------------------------------+
| mask_first_n('13812345678', 3) |
+--------------------------------+
| nnn12345678 |
+--------------------------------+
- Сочетание букв, цифр и специальных символов
SELECT mask_first_n('Abc-123-XYZ', 7);
+---------------------------------+
| mask_first_n('Abc-123-XYZ', 7) |
+---------------------------------+
| Xxx-nnn-XYZ |
+---------------------------------+
- Обработка символов 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 |
+-------------------------------------+