• 欢迎光临~

MySQL字符函数

开发技术 开发技术 2022-05-21 次浏览

1. CONCAT

连接字符串

SELECT CONCAT('ab', 'cd', 'ef');
# 输出 abcdef

# 函数中的任何参数为 NULL,返回结果为 NULL
SELECT CONCAT(NULL, 'ab', 'cd', 'ef');
# 输出 NULL

2. 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

4. LEFT、RIGHT

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

SELECT LEFT('abcdef', 3);
# 输出 abc

SELECT RIGHT('abcdef', 3);
# 输出 def

5. SUBSTRING_INDEX

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

SELECT SUBSTRING_INDEX('ab,c,def', ',', 2);
# 输出 ab,c

6. LOWER、LCASE

SELECT LOWER('MySQL字符串函数');
# 输出 mysql字符串函数

SELECT LCASE('MySQL字符串函数');
# 输出 mysql字符串函数

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

7. UPPER

SELECT UPPER('MySQL字符串函数');
# 输出 MYSQL字符串函数

8. LENGTH、OCTET_LENGTH

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

SELECT LENGTH('MySQL字符串函数');
# 输出 20

SELECT OCTET_LENGTH('MySQL字符串函数');
# 输出 20

9. TRIM

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

# 两侧去空格
SELECT TRIM(' abcdef ');
# 输出 abcdef

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

10. 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

11. REPEAT

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

SELECT REPEAT('abc-', 2);
# 输出 abc-abc-

12. INSTR

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

SELECT INSTR('MySQL字符串函数', '字符串');
# 输出 6

13. 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

14. FIELD

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

SELECT FIELD('李四', '张三', '李四', '王五');
# 输出 2

15. FIND_IN_SET

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

SELECT FIND_IN_SET('李四', '张三,李四,王五')
# 输出 2

16. 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日期函数

17. REVERSE

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

SELECT REVERSE('abcdefg');
# 输出 gfedcba

18. CHAR_LENGTH、CHARACTER_LENGTH

函数用于返回字符串的字符长度,也就是字符个数

SELECT CHAR_LENGTH('MySQL字符串函数');
# 输出 10

SELECT CHARACTER_LENGTH('MySQL字符串函数');
# 输出 10

19. BIT_LENGTH

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

SELECT BIT_LENGTH('MySQL字符串函数');
# 输出 160

SELECT BIT_LENGTH('MySQL');
# 输出 40
程序员灯塔
转载请注明原文链接:MySQL字符函数
喜欢 (0)