MASK_FIRST_N
説明
MASK_FIRST_N関数は、文字列の最初のNバイトをマスクするために使用されます。最初のNバイトにおいて、大文字をX、小文字をx、数字をnに置き換えます。
構文
MASK_FIRST_N(<str>[, <n>])
パラメータ
| Parameter | デスクリプション |
|---|---|
<str> | マスク対象の文字列。型: VARCHAR |
<n> | 最初のN バイトをマスクする数(オプション、デフォルトは文字列全体)。型: INT |
Return Value
VARCHAR型を返します。最初のNバイトがマスクされた文字列です。
特殊なケース:
- いずれかのパラメータがNULLの場合、NULLを返します
- 英数字以外の文字は変更されません
<n>が文字列長より大きい場合、文字列全体をマスクします
Examples
- 基本的な使用法: 最初の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 |
+-------------------------------------+