TRANSLATE
描述
TRANSLATE 函数用于字符串替换,将源字符串中的字符按照映射规则进行转换。它会将源字符串中出现在 from 字符串中的字符替换为 to 字符串中对应位置的字符。
语法
TRANSLATE(<source>, <from>, <to>)
参数
参数 | 说明 |
---|---|
<source> | 需要进行转换的源字符串。类型:VARCHAR |
<from> | 要被替换的字符集合。类型:VARCHAR |
<to> | 替换后的字符集合。类型:VARCHAR |
返回值
返回 VARCHAR 类型,表示替换后的字符串。
特殊情况:
- 如果任意参数为 NULL,返回 NULL
- 如果 from 字符串中有重复字符,只使用第一次出现的位置
- 如果源字符不在 from 字符串中,该字符将保持不变
- 如果 from 字符串中字符的位置超出了 to 字符串的长度,对应的源字符将被删除
- 如果 from 和 to 都为空字符串,返回原字符串
示例
- 基本字符替换
SELECT translate('abcd', 'a', 'z');
+-----------------------------+
| translate('abcd', 'a', 'z') |
+-----------------------------+
| zbcd |
+-----------------------------+
- 多次替换相同字符
SELECT translate('abcda', 'a', 'z');
+------------------------------+
| translate('abcda', 'a', 'z') |
+------------------------------+
| zbcdz |
+------------------------------+
- 特殊字符替换
SELECT translate('Palhoça', 'ç', 'c');
+--------------------------------+
| translate('Palhoça', 'ç', 'c') |
+--------------------------------+
| Palhoca |
+--------------------------------+
- 字符删除(to 字符串为空)
SELECT translate('abcd', 'a', '');
+----------------------------+
| translate('abcd', 'a', '') |
+----------------------------+
| bcd |
+----------------------------+
- from 字符串中的重复字符
SELECT translate('abcd', 'aac', 'zq');
+--------------------------------+
| translate('abcd', 'aac', 'zq') |
+--------------------------------+
| zbd |
+--------------------------------+