跳到主要内容

TRANSLATE

描述

TRANSLATE 函数用于字符串替换,将源字符串中的字符按照映射规则进行转换。它会将源字符串中出现在 from 字符串中的字符替换为 to 字符串中对应位置的字符。

语法

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

参数

参数说明
<source>需要进行转换的源字符串。类型:VARCHAR
<from>要被替换的字符集合。类型:VARCHAR
<to>替换后的字符集合。类型:VARCHAR

返回值

返回 VARCHAR 类型,表示替换后的字符串。

特殊情况:

  • 如果任意参数为 NULL,返回 NULL
  • 如果 from 字符串中有重复字符,只使用第一次出现的位置
  • 如果源字符不在 from 字符串中,该字符将保持不变
  • 如果 from 字符串中字符的位置超出了 to 字符串的长度,对应的源字符将被删除
  • 如果 from 和 to 都为空字符串,返回原字符串

示例

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