字符串函数

TiDB 支持使用大部分 MySQL 5.7 中提供的字符串函数和一部分 Oracle 21 所提供的函数。

关于 Oracle 函数和 TiDB 函数的对照关系,请参考 Oracle 与 TiDB 函数和语法差异对照。

支持的函数

函数名 功能描述
ASCII() 返回最左字符的数值
BIN() 返回一个数的二进制值的字符串表示
BIT_LENGTH() 返回字符串的位长度
CHAR() 返回由整数的代码值所给出的字符组成的字符串
CHAR_LENGTH() 返回字符串的字符长度
CHARACTER_LENGTH() 与 CHAR_LENGTH() 功能相同
CONCAT() 返回连接的字符串
CONCAT_WS() 返回由分隔符连接的字符串
ELT() 返回指定位置的字符串
EXPORT_SET() 返回一个字符串,其中值位中设置的每个位,可以得到一个 on 字符串,而每个未设置的位,可以得到一个 off 字符串
FIELD() 返回参数在后续参数中出现的第一个位置
FIND_IN_SET() 返回第一个参数在第二个参数中出现的位置
FORMAT() 返回指定小数位数格式的数字
FROM_BASE64() 解码 base-64 表示的字符串,并返回结果
HEX() 返回一个十进制数或字符串值的 16 进制表示
INSERT() 在指定位置插入一个子字符串,最多不超过指定字符数
INSTR() 返回第一次出现的子字符串的索引
LCASE() 与 LOWER() 功能相同
LEFT() 返回最左侧指定长度的字符
LENGTH() 返回字符串长度,单位为字节
LIKE 进行简单模式匹配
LOCATE() 返回第一次出现的子字符串的位置
LOWER() 返回全小写的参数
LPAD() 返回字符串参数,左侧添加指定字符串
LTRIM() 去掉前缀空格
MAKE_SET() 返回一组用逗号分隔的字符串,这些字符串的位数与给定的 bits 参数对应
MID() 返回一个以指定位置开始的子字符串
NOT LIKE 否定简单模式匹配
NOT REGEXP REGEXP 的否定形式
OCT() 返回一个数值的八进制表示,形式为字符串
OCTET_LENGTH() 与 LENGTH() 功能相同
ORD() 返回该参数最左侧字符的字符编码
POSITION() 与 LOCATE() 功能相同
QUOTE() 使参数逃逸,为了在 SQL 语句中使用
REGEXP 使用正则表达式匹配模式
REPEAT() 以指定次数重复一个字符串
REPLACE() 替换所有出现的指定字符串
REVERSE() 反转字符串里的所有字符
RIGHT() 返回指定数量的最右侧的字符
RLIKE 与 REGEXP 功能相同
RPAD() 以指定次数添加字符串
RTRIM() 去掉后缀空格
SPACE() 返回指定数量的空格,形式为字符串
STRCMP() 比较两个字符串
SUBSTR() 返回指定的子字符串
SUBSTRING() 返回指定的子字符串
SUBSTRING_INDEX() 从一个字符串中返回指定出现次数的定界符之前的子字符串
TO_BASE64() 返回转化为 base-64 表示的字符串参数
TRANSLATE() 将字符串中出现的所有指定字符替换为其它字符。这个函数不会像 Oracle 一样将空字符串视为NULL
TRIM() 去掉前缀和后缀空格
UCASE() 与 UPPER() 功能相同
UNHEX() 返回一个数的十六进制表示,形式为字符串
UPPER() 参数转换为大写形式

不支持的函数

  • LOAD_FILE()
  • MATCH
  • SOUNDEX()
  • SOUNDS LIKE
  • WEIGHT_STRING()