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

TRANSLATE

설명​

TRANSLATE 함수는 문자열을 문자 단위로 치환하며, 매핑 규칙에 따라 원본 문자열의 문자를 변환합니다. 이 함수는 원본 문자열의 각 문자 중 'from' 문자열에 포함된 문자를 'to' 문자열의 같은 위치에 있는 문자로 치환합니다.

구문​

TRANSLATE(<source>, <from>, <to>)

매개변수​

매개변수설명
<source>변환할 원본 문자열입니다. 타입: VARCHAR
<from>치환할 문자 집합입니다. 타입: VARCHAR
<to>치환에 사용할 문자 집합입니다. 타입: VARCHAR

반환 값​

문자 매핑 규칙에 따라 변환된 문자열을 VARCHAR 타입으로 반환합니다.

문자 매핑 규칙:

  • 'from'과 'to' 문자열의 위치를 기준으로 문자를 일대일로 매핑합니다.
  • 'from'의 1번째 문자는 'to'의 1번째 문자에, 2번째 문자는 2번째 문자에 매핑되며, 나머지 문자도 같은 방식으로 매핑됩니다.
  • 'from'에 중복된 문자가 있으면 처음 등장한 문자의 매핑을 사용하고 이후의 중복 문자는 무시합니다.
  • 원본 문자열에서 'from' 문자열에 포함되지 않은 문자는 그대로 유지됩니다.

특수한 경우:

  • 매개변수 중 하나라도 NULL이면 NULL을 반환합니다.
  • 원본 문자열이 빈 문자열이면 빈 문자열을 반환합니다.
  • 'from'이 빈 문자열이면 원본 문자열을 그대로 반환합니다.
  • 'to'가 빈 문자열이면 원본 문자열에서 'from'에 포함된 모든 문자를 삭제합니다.
  • 'to' 문자열이 'from'보다 짧으면 원본 문자열에서 'from'의 초과 부분에 해당하는 문자를 삭제합니다.

예제​

  1. 기본 문자 치환
SELECT translate('abcd', 'a', 'z');
+---------------------------+
| translate('abcd', 'a', 'z') |
+---------------------------+
| zbcd |
+---------------------------+
  1. 같은 문자가 여러 번 등장할 때의 치환
SELECT translate('abcda', 'a', 'z');
+----------------------------+
| translate('abcda', 'a', 'z') |
+----------------------------+
| zbcdz |
+----------------------------+
  1. 특수 문자 치환
SELECT translate('Palhoça', 'ç', 'c');
+--------------------------------+
| translate('Palhoça', 'ç', 'c') |
+--------------------------------+
| Palhoca |
+--------------------------------+
  1. 문자 삭제('to'가 빈 문자열인 경우)
SELECT translate('abcd', 'a', '');
+----------------------------+
| translate('abcd', 'a', '') |
+----------------------------+
| bcd |
+----------------------------+
  1. 'from' 문자열에 중복된 문자가 있는 경우(첫 번째 매핑만 사용)
SELECT TRANSLATE('abacad', 'aac', 'zxy');
+-----------------------------------+
| TRANSLATE('abacad', 'aac', 'zxy') |
+-----------------------------------+
| zbzyzd |
+-----------------------------------+
  1. 'to' 문자열이 'from'보다 짧은 경우(초과 문자 삭제)
SELECT TRANSLATE('abcde', 'ace', 'xy');
+-------------------------------+
| TRANSLATE('abcde', 'ace', 'xy') |
+-------------------------------+
| xbyd |
+-------------------------------+
  1. UTF-8 문자 치환
SELECT TRANSLATE('ṭṛì ḍḍumai', 'ṭṛ', 'ab');
+-----------------------------------+
| TRANSLATE('ṭṛì ḍḍumai', 'ṭṛ', 'ab') |
+-----------------------------------+
| abì ḍḍumai |
+-----------------------------------+
  1. 숫자 문자 치환
SELECT TRANSLATE('a1b2c3', '123', 'xyz');
+----------------------------------+
| TRANSLATE('a1b2c3', '123', 'xyz') |
+----------------------------------+
| axbycz |
+----------------------------------+
  1. 특수 기호 치환
SELECT TRANSLATE('hello@world.com', '@.', '-_');
+--------------------------------------------+
| TRANSLATE('hello@world.com', '@.', '-_') |
+--------------------------------------------+
| hello-world_com |
+--------------------------------------------+

키워드​

TRANSLATE