文章目录
1.获取字符串长度
- 字节数长度:
length(str)
- 字符数长度:
char_length(str)
select length("ABCD"); --4
select length("中国人"); --3
select char_length("ABCD"); --4
select char_length("中国人"); --9
2.查找字符串所在位置
2.1 find_in_set(str1,str2)
返回字符串str1在str2中的位置,从1开始
str2包含若干个以逗号分隔的字符串
SELECT find_in_set("abc","123,456,abc"); --3
2.2 field(str,str1,str2,str3…)
返回str在str1,str2,str3…中的位置。
SELECT find_in_set("abc","123","456","abc"); --3
2.3 locate
-
用法一、locate(str1,str2)
返回子串str1在字符串str2中的位置
SELECT locate("a","123a123") ;--4
- 用法二、locate(substr,str,pos)
从位置 pos开始找,返回substr从pos处起第一次出现在str中的位置。
SELECT LOCATE('bar', 'foobarbar', 5); -> 7
2.4 position(str1 IN str2)
返回子串str1在字符串str2中的位置
SELECT position("a" IN "123a123") ;--4
2.5 instr(str1,str2)
返回子串str2在字符串str1中的位置【注意这里调转了】
SELECT instr("123a123","a" ) ;--4
3.获取指定位置的子串
3.1 elt(index,str1,str2,str3…)
- 返回指定index位置的字符串
SELECT elt(1,“a”’,"b","c") ; -- a
3.2 left(str,n)
- 截取str左边n个字符
SELECT left("string",3) ; -- str
3.3 right(str,n)
- 截取str右边n个字符
SELECT left("string",3) ; -- ing
3.4 substring(str,index,len)
- 从str的index位置截取len个字符
SELECT left("mynameis",3,4) ; -- name
4.合并字符串:concat(str1,str2,str3…)
-
多个字符串合并成一个字符串
-
如果传入的值中有null,那么最终结果是null
-
如果想要在多个字符串合并结果中将每个字符串都分隔一下,可以使用concat_ws(分隔符,str1,str2,str3…),如果传入的分隔符为null,那么最终结果是null(不过这时候如果str有为null不影响结果)
SELECT concat("my","name","is") ; -- mynameis
SELECT concat(" ","my","name","is") ; -- my name is
5.比较字符串大小函数:strcmp(str1,str2)
6.字符串替换函数
6.1 insert(str1,index,len,str2)
用str2从str1的index位置替换str1的len个元素
6.2 replace(str,str1,str2)
将str中的子串str1全部替换成str2
7.字符串去空函数
ltrim(str)
去除字符串str左边的空格
rtrim(str)
去除字符串str右边的空格
trim()
去除字符串str两边的空格
8.字母大小写转换函数:
- 大写:upper(x),ucase(x);
- 小写:lower(x),lcase(x)
-
upper(x),ucase(x)用于将字母转成大写,x可以是单个字母也可以是字符串
-
lower(x),lcase(x)用于将字母转成小写,x可以是单个字母也可以是字符串
文献参考:https://www.cnblogs.com/progor/p/8832663.html