メインコンテンツまでスキップ
バージョン: 4.x

TRANSLATE

説明

TRANSLATE関数は文字列置換に使用され、マッピングルールに従ってソース文字列内の文字を変換します。'from'文字列に含まれるソース文字列内の文字を、'to'文字列内の対応する文字で置き換えます。

構文

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

パラメータ

Parameterデスクリプション
<source>変換対象の文字列。型: VARCHAR
<from>置換される文字の集合。型: VARCHAR
<to>置換文字の集合。型: VARCHAR

Return Value

変換された文字列を表すVARCHAR型を返します。

特殊なケース:

  • いずれかのパラメータがNULLの場合、NULLを返します
  • 'from'文字列に重複する文字がある場合、最初に出現するもののみが使用されます
  • ソース文字が'from'文字列に含まれていない場合、その文字は変更されません
  • 'from'文字列内での文字の位置が'to'文字列の長さを超える場合、対応するソース文字は削除されます
  • 'from'と'to'の両方が空文字列の場合、元の文字列を返します

Examples

  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('abcd', 'aac', 'zq');
+--------------------------------+
| translate('abcd', 'aac', 'zq') |
+--------------------------------+
| zbd |
+--------------------------------+