MySQL函数-字符串函数

字符串函数是MySQL中最常用的一类函数,字符串函数主要用于处理表中的字符串。

1、CHAR_LENGTH(s) 返回字符串s的字符数

SELECT CHAR_LENGTH('你好123') -- 5
2、LENGTH(s) 返回字符串s的长度
SELECT LENGTH('你好123') -- 9
3、CONCAT(s1,s2,...) 将字符串s1,s2等多个字符串合并为一个字符串
SELECT CONCAT('12','34') -- 1234
4、CONCAT_WS(x,s1,s2,...) 同CONCAT(s1,s2,...)函数,但是每个字符串之间要加上x
SELECT CONCAT_WS('@','12','34','56') -- 12@34@56
5、INSERT(s1,x,len,s2) 将字符串s2替换s1的x位置开始长度为len的字符串
SELECT INSERT('12345',1,3,'abc') -- abc45
6、UPPER(s),UCAASE(S) 将字符串s的所有字母变成大写字母
SELECT UPPER('abc') -- ABC
7、LOWER(s),LCASE(s) 将字符串s的所有字母变成小写字母
SELECT LOWER('ABC') -- abc
8、LEFT(s,n) 返回字符串s的前n个字符
SELECT LEFT('abcde',2) -- ab
9、RIGHT(s,n) 返回字符串s的后n个字符
SELECT RIGHT('abcde',2) -- de
10、LPAD(s1,len,s2) 字符串s2来填充s1的开始处,使字符串长度达到len
SELECT LPAD('abc',5,'xx') -- xxabc
11、RPAD(s1,len,s2) 字符串s2来填充s1的结尾处,使字符串的长度达到len
SELECT RPAD('abc',5,'xx') -- abcxx
12、LTRIM(s) 去掉字符串s开始处的空格
13、RTRIM(s) 去掉字符串s结尾处的空格
14、TRIM(s) 去掉字符串s开始和结尾处的空格
15、TRIM(s1 FROM s) 去掉字符串s中开始处和结尾处的字符串s1
SELECT TRIM('@' FROM '@@abc@@') -- abc
16、REPEAT(s,n) 将字符串s重复n次
SELECT REPEAT('ab',3) -- ababab
17、SPACE(n) 返回n个空格
18、REPLACE(s,s1,s2) 将字符串s2替代字符串s中的字符串s1
SELECT REPLACE('abc','a','x') --xbc
19、STRCMP(s1,s2) 比较字符串s1和s2
SELECT STRCMP('ad','ac'); -- 1
SELECT STRCMP('ab','ac'); -- -1
SELECT STRCMP('ab','ab'); -- 0
20、SUBSTRING(s,n,len) 获取从字符串s中的第n个位置开始长度为len的字符串
SELECT SUBSTRING('abcdef',2,3); -- bcd
21、MID(s,n,len) 同SUBSTRING(s,n,len)
22、LOCATE(s1,s),POSITION(s1 IN s) 从字符串s中获取s1的开始位置
SELECT LOCATE('cd','abcdefg'); -- 3
SELECT LOCATE('b', 'abc') -- 2
23、INSTR(s,s1) 从字符串s中获取s1的开始位置
SELECT INSTR('abc','b') -- 2
SELECT INSTR('abc','d') -- 0
24、REVERSE(s) 将字符串s的顺序反过来
SELECT REVERSE('abc') -- cba
25、ELT(n,s1,s2,...) 返回第n个字符串
SELECT ELT(2,'a','b','c') -- b
26、EXPORT_SET(x,s1,s2)
返回一个字符串,在这里对于在“bits”中设定每一位,你得到一个“on”字符串,
并且对于每个复位(reset)的位,你得到一个 “off”字符串。
每个字符串用“separator”分隔(缺省“,”),并且只有“bits”的“number_of_bits” (缺省64)位被使用。
SELECT EXPORT_SET(5,'Y','N',',',4) -- Y,N,Y,N
27、FIELD(s,s1,s2...) 返回第一个与字符串s匹配的字符串位置
SELECT FIELD('c','a','b','c') -- 3
28、FIND_IN_SET(s1,s2) 返回在字符串s2中与s1匹配的字符串的位置
SELECT FIND_IN_SET('hi','hihi,hey,hi,bas')
字符串列表是一个由多个逗号‘,’分开的字符串组成的列表。如果s1不在s2或s2为空字符串,则返回值为0。如果任意一个参数为NULL,则返回值为NULL。
29、MAKE_SET(x,s1,s2) 返回一个集合 (包含由“,” 字符分隔的子串组成的一个字符串),由相应的位在bits集合中的的字符串组成。
SELECT MAKE_SET(1|4,'a','b','c'); -- a,c  1对应0001,4对应0100,异或操作为0101,返回从左端开始第一和第三个字符串组成的字符串
-- 异或:如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0
30、SUBSTRING_INDEX 返回从字符串str的第count个出现的分隔符delim之后的子串。
如果count是正数,返回第count个字符左边的字符串。
如果count是负数,返回第(count的绝对值(从右边数))个字符右边的字符串。
 
SELECT SUBSTRING_INDEX('a*b','*',1) -- a
SELECT SUBSTRING_INDEX('a*b','*',-1) -- b
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-1) -- c
--SELECT SUBSTRING_INDEX('a*b*c*d*e','*',3) -- a*b*c
31、LOAD_FILE(file_name) 读入文件并且作为一个字符串返回文件内容。
文件必须在服务器上,你必须指定到文件的完整路径名,而且你必须有file权限。
文件必须所有内容都是可读的并且小于max_allowed_packet。 如果文件不存在或由于上面原因之一不能被读出,函数返回NULL。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值