최종 수정: 에
MASK_FIRST_N
설명
MASK_FIRST_N 함수는 문자열의 처음 N바이트를 마스킹하는 데 사용됩니다. 처음 N바이트에서 대문자는 X로, 소문자는 x로, 숫자는 n으로 바꿉니다.
구문
MASK_FIRST_N(<str>[, <n>])
매개변수
| 매개변수 | 설명 |
|---|---|
<str> | 마스킹할 문자열입니다. 타입: VARCHAR |
<n> | 앞에서부터 마스킹할 바이트 수 N입니다(선택 사항, 기본값은 전체 문자열). 타입: INT |
반환값
처음 N바이트를 마스킹한 문자열을 VARCHAR 타입으로 반환합니다.
특수한 경우:
- 매개변수 중 하나라도 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 |
+-------------------------------------+