Mysql基础入门(二)字符串处理函数

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)
  1. upper(x),ucase(x)用于将字母转成大写,x可以是单个字母也可以是字符串
    在这里插入图片描述

  2. lower(x),lcase(x)用于将字母转成小写,x可以是单个字母也可以是字符串
    在这里插入图片描述
    文献参考:https://www.cnblogs.com/progor/p/8832663.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值