MySQL 字符函数

Tue 23 September 2025

MySQL 字符函数 目录 1. CONCAT 2. CONCAT_WS 3. SUBSTR、MID、SUBSTRING 4. LEFT、RIGHT 5. SUBSTRING_INDEX 6. LOWER、LCASE 7. UPPER 8. LENGTH、OCTET_LENGTH 9. TRIM 10. LPAD、RPAD 11. REPEAT 12. INSTR 13. LOCATE 14. FIELD 15. FIND_IN_SET 16. REPLACE 17. REVERSE 18. CHAR_LENGTH、CHARACTER_LENGTH 19. BIT_LENGTH 1. CONCAT 连接字符串

SELECT CONCAT('ab', 'cd', 'ef');

输出 abcdef

函数中的任何参数为 NULL,返回结果为 NULL

SELECT CONCAT(NULL, 'ab', 'cd', 'ef');

输出 NULL

  1. CONCAT_WS 使用指定的分隔符 separator 连接多个字符串

SELECT CONCAT_WS('-', 'ab', 'cd', 'ef');

输出 ab-cd-ef

如果分隔符为 NULL,返回结果为 NULL

SELECT CONCAT_WS(NULL, 'ab', 'cd', 'ef'); 3. SUBSTR、MID、SUBSTRING SUBSTRING(str,pos,len) 函数都可以用于返回从指定位置 pos 开始的子串,len 表示返回子串的长度;pos 为 0 表示返回空字符串。

SELECT SUBSTRING('abcdef', 1, 3);

输出 abc

SELECT SUBSTR('abcdef', 1, 3);

输出 abc

SELECT MID('abcdef', 1, 3);

输出 abc

  1. LEFT、RIGHT LEFT(str,len)函数返回字符串 str 左侧的 len 个字符,RIGHT(str,len)函数返回字符串 str 右侧的 len 个字符。

SELECT LEFT('abcdef', 3);

输出 abc

SELECT RIGHT('abcdef', 3);

输出 def

  1. SUBSTRING_INDEX SUBSTRING_INDEX(str,delim,count)函数返回第 count 个分隔符 delim 之前的子串。

SELECT SUBSTRING_INDEX('ab,c,def', ',', 2);

输出 ab,c

  1. LOWER、LCASE SELECT LOWER('MySQL字符串函数');

输出 mysql字符串函数

SELECT LCASE('MySQL字符串函数');

输出 mysql字符串函数

SELECT LOWER(CONVERT(BINARY 'MySQL字符串函数' USING utf8mb4));

输出 mysql字符串函数

  1. UPPER SELECT UPPER('MySQL字符串函数');

输出 MYSQL字符串函数

  1. LENGTH、OCTET_LENGTH 函数用于返回字符串的字节长度【一个汉字字符占用 3 个字节】

SELECT LENGTH('MySQL字符串函数');

输出 20

SELECT OCTET_LENGTH('MySQL字符串函数');

输出 20

  1. TRIM TRIM([remstr FROM] str)函数用于返回删除字符串 str 两侧所有 remstr 字符串之后的子串,remstr 默认为空格。

两侧去空格

SELECT TRIM(' abcdef ');

输出 abcdef

SELECT TRIM('-' FROM '--MySQL字符串函数--');

输出 MySQL字符串函数

  1. LPAD、RPAD LPAD(str,len,padstr)函数表示字符串 str 的左侧使用 padstr 进行填充,直到长度为 len;RPAD(str,len,padstr)函数表示在字符串 str 的右侧使用 padstr 进行填充,直到长度为 len。当字符串 str 的长度大于 len 时,相当于从右侧截断字符串。

SELECT LPAD(286, 12, '0');

输出 000000000286

SELECT RPAD(286, 5, '0');

输出 28600

  1. REPEAT REPEAT(str,count)函数用于将字符串 str 复制 count 次并返回结果。

SELECT REPEAT('abc-', 2);

输出 abc-abc-

  1. INSTR INSTR(str,substr)函数用于返回子串 substr 在字符串 str 中第一次出现的索引位置,没有找到子串时返回 0。

SELECT INSTR('MySQL字符串函数', '字符串');

输出 6

  1. LOCATE LOCATE(substr,str)函数也可以用于返回子串 substr 在字符串 str 中第一次出现的索引位置,和 INSTR(str,substr) 函数唯一的不同就是参数的顺序相反。

LOCATE(substr,str,pos)函数返回子串 substr 在字符串 str 中从位置 pos 开始第一次出现的索引位置

SELECT LOCATE('字符串', 'MySQL字符串函数');

输出 6

SELECT LOCATE('字符串', 'MySQL字符串函数', 7);

输出 0

  1. FIELD FIELD(str,str1,str2,str3,…) 函数返回字符串 str 在后续字符串列表中出现的位置,没有找到时返回 0。

SELECT FIELD('李四', '张三', '李四', '王五');

输出 2

  1. FIND_IN_SET FIND_IN_SET(str,strlist) 函数返回字符串 str 在列表字符串 strlist 中出现的位置,strlist 由 N 个子串使用逗号分隔组成。

SELECT FIND_IN_SET('李四', '张三,李四,王五')

输出 2

  1. REPLACE REPLACE(str,from_str,to_str)函数用于将字符串 str 中所有的 from_str 替换为 to_str,返回替换后的字符串。

INSERT(str,pos,len,newstr)函数用于在字符串 str 的指定位置 pos 之后插入子串 newstr,替换随后的 len 个字符。

SELECT REPLACE('MySQL字符串函数', '字符串', '日期');

输出 MySQL日期函数

SELECT INSERT('MySQL字符串函数', 6, 3, '日期');

输出 MySQL日期函数

  1. REVERSE REVERSE(str)函数用于将字符串 str 中的字符顺序进行反转。

SELECT REVERSE('abcdefg');

输出 gfedcba

  1. CHAR_LENGTH、CHARACTER_LENGTH 函数用于返回字符串的字符长度,也就是字符个数

SELECT CHAR_LENGTH('MySQL字符串函数');

输出 10

SELECT CHARACTER_LENGTH('MySQL字符串函数');

输出 10

  1. BIT_LENGTH 函数用于返回字符串的比特长度(比特数量)

SELECT BIT_LENGTH('MySQL字符串函数');

输出 160

SELECT BIT_LENGTH('MySQL');

输出 40

Category: 编程mysql