최종 수정: 에
MASK_LAST_N
설명
MASK_LAST_N 함수는 문자열의 마지막 N바이트를 마스킹하는 데 사용됩니다. 마지막 N바이트에서 대문자를 X로, 소문자를 x로, 숫자를 n으로 바꿉니다.
구문
MASK_LAST_N(<str>[, <n>])
매개변수
| 매개변수 | 설명 |
|---|---|
<str> | 마스킹할 문자열입니다. 유형: VARCHAR |
<n> | 문자열 끝에서부터 마스킹할 바이트 수입니다(선택 사항이며, 기본값은 전체 문자열). 유형: INT |
반환값
마지막 N바이트가 마스킹된 문자열을 VARCHAR 유형으로 반환합니다.
특수한 경우:
- 매개변수 중 하나라도 NULL이면 NULL을 반환합니다.
- 영문자나 숫자가 아닌 문자는 그대로 유지됩니다.
<n>이 문자열 길이보다 크면 전체 문자열을 마스킹합니다.
예제
- 기본 사용법: 마지막 4바이트 마스킹
SELECT mask_last_n('1234-5678', 4);
+-----------------------------+
| mask_last_n('1234-5678', 4) |
+-----------------------------+
| 1234-nnnn |
+-----------------------------+
- n을 지정하지 않은 경우(전체 문자열 마스킹)
SELECT mask_last_n('abc123');
+----------------------+
| mask_last_n('abc123') |
+----------------------+
| xxxnnn |
+----------------------+
- n이 문자열 길이를 초과하는 경우
SELECT mask_last_n('Hello', 100);
+---------------------------+
| mask_last_n('Hello', 100) |
+---------------------------+
| Xxxxx |
+---------------------------+
- NULL 값 처리
SELECT mask_last_n(NULL, 5);
+----------------------+
| mask_last_n(NULL, 5) |
+----------------------+
| NULL |
+----------------------+
- n이 0인 경우(문자를 마스킹하지 않음)
SELECT mask_last_n('Hello123', 0);
+----------------------------+
| mask_last_n('Hello123', 0) |
+----------------------------+
| Hello123 |
+----------------------------+
- n이 문자열 길이보다 큰 경우(전체 문자열 마스킹)
SELECT mask_last_n('Test', 100);
+--------------------------+
| mask_last_n('Test', 100) |
+--------------------------+
| Xxxx |
+--------------------------+
- 이메일의 도메인 부분 마스킹
SELECT mask_last_n('user@example.com', 11);
+-------------------------------------+
| mask_last_n('user@example.com', 11) |
+-------------------------------------+
| user@xxxxxxx.xxx |
+-------------------------------------+
- 전화번호의 마지막 4자리 마스킹
SELECT mask_last_n('13812345678', 4);
+-------------------------------+
| mask_last_n('13812345678', 4) |
+-------------------------------+
| 1381234nnnn |
+-------------------------------+
- 영문자, 숫자, 특수 문자가 혼합된 경우
SELECT mask_last_n('ABC-123-xyz', 7);
+--------------------------------+
| mask_last_n('ABC-123-xyz', 7) |
+--------------------------------+
| ABC-nnn-xxx |
+--------------------------------+
- 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 |
+------------------------------------+