一、MySQL字符串函数
1、ASCII(s):返回字符串s的第一个字符的ASCII码
SELECT ASCII('A') -- 结果:65
SELECT ASCII('ABC') -- 结果也是65
2、CHAR_LENGTH(s):返回字符串的字符数
SELECT CHAR_LENGTH('ABC') -- 结果是3
3、CHARACTER_LENGTH(s):返回字符串字符数
SELECT CHARACTER_LENGTH('abc') -- 结果是3
由此可见,CHAR_LENGTH(s),CHARACTER_LENGTH(s),这两个函数作用相同,都是用于返回字符串的字符数
4、CONCAT(s1,s2,...sn):将s1,s2,...sn合并为一个字符串
SELECT CONCAT('ABC','123') -- 结果: ABC123
5、CONCAT_WS(x,s1,s2,...sn):将s1,s2,...sn合并为一个字符串,并用x作为分隔符
SELECT CONCAT_WS(' ','ABC','123') -- 结果:ABC 123
SELECT CONCAT_WS('','ABC','123') -- 结果:ABC123
CONCAT_WS(x,s1,s2,...sn),当x为空时,结果与CONCAT(s1,s2,...sn)相同
6、FIELD(s,s1,s2,...sn):返回字符串第一次出现的位置(不区分大小写),若没有则返回 0
SELECT FIELD('ABC','ABC','def','dfg') -- 结果:1
SELECT FIELD('ABC','Abc','DEF','ABC') -- 结果:1
SELECT FIELD('ABC','DEF','GHI','SSS') --- 结果:0
7、FIND_IN_SET(s1,s2):返回s1第一次在s2中的位置,若没有返回0
SELECT FIND_IN_SET('abc','abc,abc,ccc'); -- 结果:1
SELECT FIND_IN_SET('abc','ABC,abc,a,c'); -- 结果:1
SELECT FIND_IN_SET('abc','AB,ac,a,c'); -- 结果:0
8、FORMAT(x,n):可以将数字格式化为'###,###.#####',将x保留到小数点后n位,末位四舍五入
SELECT FORMAT(555.456,2); -- 结果:555.46
SELECT FORMAT(555.451,2); -- 结果:555.45
9、INSERT(s1,x,len,s2):字符串s2替换s1从x开始长度为len的字符串
SELECT INSERT('abc',2,1,'d00') '替换内容'; -- 结果:ad00c
SELECT INSERT('abcefg',2,4,'ccc') '替换内容2' -- 结果:acccg
10、LOCATE(s1,s):从字符串s中获取s1的开始位置,没有返回 0
SELECT LOCATE('bc','abc') '替换位置'; -- 结果:2
SELECT LOCATE('bc','cdef') '替换位置2' -- 结果:0
11、LCASE(s):将字符串s中所有字母变成小写字母
SELECT LCASE('ab啊的SS') '改变后字符串s'; -- 结果:ab啊的ss
12、LOWER(s):将字符串s中所有字母变成小写字母
SELECT LOWER('ab啊的SS') '改变后字符串s2'; -- 结果:ab啊的ss
13、UCASE(s):将字符串转换为大写
SELECT UCASE('aa啊啊AA') '字符串变大写'; -- 结果:AA啊啊AA
14、UPPER(s):将字符串转换为大写
SELECT UPPER('aassAA') '字符串变大写1'; -- 结果:AASSAA
15、LPAD(s1,len,s2):在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len
SELECT LPAD('aa',5,'sx') '填充后'; -- 结果:sxsaa
16、RPAD(s1,len,s2):在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len
SELECT RPAD('aa',5,'sx') '填充后2'; -- 结果:aasxs
17、LTRIM(s):去掉字符串 s 开始处的空格
SELECT LTRIM(' aa aa ') '去除空格后字符串长度'; -- 结果:'aa aa '
18、RTRIM(s):去掉字符串 s 结尾处的空格
SELECT RTRIM(' aa aa ') '去除空格后字符串长度2'; -- ' aa aa'
19、TRIM(s):去掉字符串 s 开始和结尾处的空格
SELECT TRIM(' aa aa ') '去除空格后字符串长度3'; -- 'aa aa'
20、MID(s,n,len):从字符串 s 的 n 位置截取长度为 len 的子字符串
SELECT MID('abcdef',5,3) '截取的字符串'; -- 结果:ef
21、SUBSTRING(s, start, length):从字符串 s 的 start 位置截取长度为 length 的子字符串
SELECT SUBSTRING('abcdef',5,3) '截取的字符串2'; -- 结果:ef
22、SUBSTR(s, start, length):从字符串 s 的 start 位置截取长度为 length 的子字符串
SELECT SUBSTR('abcdef',5,3) '截取的字符串3'; -- 结果:ef
23、SUBSTRING_INDEX(s, delimiter, number):返回从字符串 s 的第 number 个出现的分隔符 delimiter 之后的子串
如果 number 是正数,返回第 number 个字符左边的字符串。
如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串。
SELECT SUBSTRING_INDEX('abcdef','c',1); -- 结果:ab
SELECT SUBSTRING_INDEX('abcdef','c',0); -- 结果:空
SELECT SUBSTRING_INDEX('abcdef','c',-1); -- 结果:def
24、POSITION(s1 IN s):从字符串 s 中获取 s1 的开始位置
SELECT POSITION('cd' IN 'abcdef') 'cd 开始的位置'; -- 结果:3
25、REPEAT(s,n):将字符串 s 重复 n 次
SELECT REPEAT('acb',2) '重复两遍后'; -- 结果:acbacb
26、REPLACE(s,s1,s2):将字符串 s2 替代字符串 s 中的字符串 s1
SELECT REPLACE('abc','a','de'); -- 结果:debc
SELECT REPLACE('abc','b','de'); -- 结果:adec
SELECT REPLACE('abc','e','de'); -- 结果:abc
27、REVERSE(s):将字符串s的顺序反过来
SELECT REVERSE('abc'); -- 结果:cba
28、LEFT(s,n):返回字符串 s 的前 n 个字符
SELECT LEFT('abc',2); -- 结果:ab
29、RIGHT(s,n):返回字符串 s 的后 n 个字符
SELECT RIGHT('abc',2); -- 结果:bc
30、SPACE(n):返回 n 个空格
SELECT SPACE(4); -- 结果:' '
31、STRCMP(s1,s2):
比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,
如果 s1>s2 返回 1,如果 s1<s2 返回 -1
SELECT STRCMP('aBc','abc'); -- 结果:0
SELECT STRCMP('abc','bca'); -- 结果:-1
SELECT STRCMP('ccc','ccb'); -- 结果:1
4394

被折叠的 条评论
为什么被折叠?



