1.字符串长度函数
char_length(str) 返回值为字符串str所包含的字符个数,一个多字节字符算作一个单字符
length(str) 返回值为字符串的字节长度,使用utf8编码字符集时,一个汉字是3个字节,一个数字或字母算一个字节
2.合并字符串函数
concat(s1,s2)返回结果为连接参数产生的字符串,或许有一个或多个参数,任何一个为NULL时,则返回值为NULL,如果所有参数均为非二进制字符串,则结果为非二进制字符串,如果自变量中含有任一二进制字符串,则结果为一个二进制字符串
concat_ws(x,s1,s2,...)
concat with separator,是concat的特殊形式,第一个参数x是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间,分隔符可以是一个字符串,也可以是其他参数,如果分隔符为NULL,则结果为NULL
3.替换字符串的函数insert(s1,x,len,s2)
返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字符,如果x超过字符串长度,那么返回值为原始字符串,如果len的长度大于其他字符串的长度,就从位置x开始替换,若任何一个参数为null,则返回值为null
select insert('Quest',2,3,'hello') as col1;
4.字母大小写转换函数
lower(x),lcase(str) 将字符串str的字母字符全部转换成小写字母
upper(x),ucase(str) 将字符串str中的字母字符全部转换成大写字母
left(s,n) 返回字符串s开始的最左边的n个字符
right(s,n) 返回字符串最右边的n个字符
5.填充字符串的函数
lpad(s1,len,s2) 返回字符串s1,其左边由字符串s2填补到len字符长度,若s1的长度大于len,则返回值被缩短至len字符
lpad('hello',4,'??') 因为长度大于4,所以不需要填充,
lpad('hello',10,'??') ?????hello
rpad 在右边填充
6.删除空格的函数
ltrim(s) 字符串左侧空格字符被删除
rtrim(s) 字符串右侧空格字符被删除
trim(s) 删除字符串s两侧的空格
trim(s1 from s) 删除字符串s中两端所有的子字符串s1
7.重复生成字符串的函数repeat(s,n)
返回一个由重复的字符串s组成的字符串,字符串s的数目等于n,若n小于等于0,则返回一个空字符串
select repeat('mysql',3) = mysqlmysqlmysql
8.空格函数space(x) 和替换函数replace(s,s1,s2)
space(x) 返回一个由n个空格组成的字符串
replace(s,s1,s2)使用字符串s2替代字符串s中所有的字符串s1
9.比较字符串大小的函数strcmp(s1,s2)
若所有的字符串均相同,则返回0,
10.获取子串的函数substring(s,n,len),mid(s,n.len)
从字符串s返回一个长度len字符相同的子字符串,起始于位置n,也可能对n使用一个负值,则子字符串的位置起始于字符串结尾的n字符,即倒数第n个字符,而不是字符串的开头位置
11.匹配子串开始位置的函数
locate(str1,str),position(str1 in str),instr(str,str1)三个函数作用相同,返回子字符串str1在字符串str中的开始位置
12.字符串逆序的函数reverse(s)
将字符串s反转,返回的字符串的顺序和s字符串顺序相反
13.返回指定位置的字符串的函数
在elt(n,s1,s2,s3,..)若N=1,则返回值为字符1,若N=2,则返回值为字符串2
14.返回指定字符串位置的函数field(s,s1,s2)
field(s,s1,s2)返回字符串s在列表中第一次出现的位置,在找不到s的情况下,返回值为0,
15.返回子串位置的函数find_in_set(s1,s2)
返回字符串s1在字符串列表s2中出现