字符串函数
1.统计字符个数:CHAR_LENGTH(str) 1个多字节字符算作1个单字符 。
SELECT CHAR_LENGTH('word'); ->4
SELECT CHAR_LENGTH("文");-> 1
2.字符串的字节长度:LENGTH(str) utf8-> 1个汉字是 3 个字节 , 一个数字或字母算一个字节。
SELECT LENGTH('e'); ->1
SELECT LENGTH('文');->3
3.合并字符串:CONCAT(s1,s2,...)
如有任 何一个参数为 NULL, 则返回值为 NULL。如果所有参数均为非二进制字符串,则结果为非二
进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
SELECT CONCAT('w',NULL,'dd') => NULL
4.以分隔符连接:CONCAT_WS(x,s1,s2,...) x代表分隔符
如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
CONCAT_WS('-','a',NULL,'b');=> 'a-b'
5.替换字符串:INSERT(s1,x,len,s2) s1:初始字符串 x:替换起始下标 len:替换长度 s2:用于替换的字符串
若任何一个参数为 NULL, 则返回值为 NULL 。
6.转换成小写:LOWER(str) LCASE(str)
7.转换成大写:UPPER(str) UCASE(str)
8.获取指定长度的字符串:LEFT(s,n) RIGHT(s,n) s:开始坐标 n:字符串长度
9.填充字符串:从左:LPAD(s1,len,s2) 从右:RPAD(s1,len,s2)
s1:初始字符串 len:长度 s2:用于填补的字符串
字符串长度大于len则截取,小于则填补
SELECT LPAD('hello',4,'?');=> hell
SELECT LPAD('hello',8,'??'); =>???hello
10.删除空格:删除左侧:LTRIM(s) 删除右侧:RTRIM(s) 删除两侧:TRIM(s)
11.删除指定字符串:TRIM(s1 FROM s)
删除字符串 s 中两端所有的子字符串 sl 。 sl 为可选项,在未指定情况下,删除空格。
12.重复生成字符串:REPEAT(s,n)
SELECT REPEAT('s1',3);=> s1s1s1
13.空格函数:SPACE(n) 返回一个由 n 个空格组成的字符串 。
14.替换函数:REPLACE(s,s1,s2) 使用字符串 s2 替代字符串 s 中所有的字符串 sl 。
15.比较字符串大小:STRCMP(s1,s2)
16.获取子串:SUBSTRING(s,n,len) MID(s,n,len)
17.匹配子串的开始位置:LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)
18.字符串逆序:REVERSE(s)
19.返回指定位置的字符串:ELT(N,str1,str2,str3,...)
获取字符串N,N大于或小于参数的数目,返回NULL
20.返回指定字符串位置:FIELD(s,s1,s2,s3,.....)
返回s在字符串列表中第一次出现的位置,匹配不到则返回0
21.返回子串位置:FIND_IN_SET(s1,s2)
22.选取字符串:MAKE_SET(x,s1,s2,...)
参考书籍:MySql5.7从入门到精通