본문으로 건너뛰기
최종 수정: 에

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>이 문자열 길이보다 크면 전체 문자열을 마스킹합니다

예제​

  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 |
+-------------------------------------+