二.七 转大写 upper(s1),ucase(s1)
将s1 字符串转换成大写。 upper(s1) 与ucase() 用法是一样的。
select upper('abc123'),upper('aEdBc'),upper('两个蝴蝶飞');
二.八 获取最左边n长度的字符串 left(s1,n)
将s1字符串,从左边数 n个长度,返回。 如果n 数值大于 char_length(s1),就全部提取。
select left('abc123',3),left('两个蝴蝶飞',4),left('岳泽霖',10);
二.九 获取最右边n长度的字符串 right(s1,n)
将s1字符串,从右边数n个长度,返回。 如果n数值大于 char_length(s1),就全部提取返回。
select right('abc123',3),right('两个蝴蝶飞',4),right('岳泽霖',10);
二.十 填充左边部分 LPAD(s1,len,s2)
对于s1字符串,如果char_length(s1)<len, 那么就在s1字符串左边连续填充字符串s2, 使填充后的字符串的长度为len.
如果 char_length(s1)>=len, 那么就从 s1字符串的左边截取len个长度的字符串,使长度变成len.
select lpad('abc123',4,'**'),lpad('abc123',6,'**'),lpad('两个蝴蝶飞',20,'*');
二.十一 填充右边部分 RPAD(s1,len,s2)
对于s1字符串,如果char_length(s1)<len, 那么就在s1字符串右边连续填充字符串s2, 使填充后的字符串的长度为len.
如果 char_length(s1)>=len, 那么就从 s1字符串的左边截取len个长度的字符串,使长度变成len.
select rpad('abc123',4,'**'),rpad('abc123',6,'**'),rpad('两个蝴蝶飞',20,'*');
二.十二 删除空格 ltrim(s1),rtrim(s2),trim(s3)
ltrim() 删除的是左边的空格, rtrim() 删除的是右边的空格, trim()删除的是左右两边的空格。 但不能删除中间的空格。
不太好注意看, 用concat()函数,左右两边各连接一个 1,方便查看。
select concat('1',' 两个蝴蝶飞 ','1'),concat('1',ltrim(' 两个蝴蝶飞 '),'1'), concat('1',rtrim(' 两个蝴蝶飞 '),'1'),concat('1',trim(' 两个 蝴蝶飞 '),'1');
二.十三 删除指定的字符串 trim(s1 from s2)
将s2字符串,如果左右两边的开头是s1的话,就删除s1字符串。 如果s1不指定的话,就默认删除空格。 trim(s3) 实际上就是 trim(’ ’ from s3). 不能删除中间的。 删除时,也不是只删除一次,如果s2删除掉s1之后,发现开头和结尾还是s1,那么会继续删除的。
select trim('ab' from 'abc1234ab'),trim('ab' from 'ababab123abab3dabab'),trim(' ' from ' 两个蝴蝶飞 ');
二.十四 重复生成字符串 repeat(s1,n)
生成 n个s1字符串,将它进行连接。 如果 n<=0,返回空字符串, 如果 s1或者n为null,那么返回 null.
select repeat('两个蝴蝶飞',3),repeat('abc',0),repeat(null,3),repeat('abc',null);
二.十五 空格函数 space(n)
生成 n个空格,相当于 repeat(’’,n). 是repeat()的一种特殊形式。
select concat('(',space(10),')'),char_length(space(10));
二.十六 替换字符串 replace(s1,s2,s3)
在 s1字符串中, 如果存在s2字符串,那么就将s2字符串替换为s3字符串。 注意,是全部替换。 如果s1里面,没有s2字符串,那么就不替换,仍然返回s1字符串。
select replace('abcd','ab','cd'),replace('ababCdabEfab','ab','cd'),replace('cdefg','ab','cd');
二.十七 比较字符串大小 strcmp(s1,s2)
strcmp 实际就是 string+compare
如果s1==s2, 就返回0. 如果s1<s2,就返回-1, s1>s2,就返回1. 按照ASCII码进行比较, 不区分大小写。
select strcmp('abc','Abc'),strcmp('abc','abcd'),strcmp('abc','abc'),strcmp('abc123','123');
二.十八 字符串截取 substr(str,index,len), substring(str,index,len) 和mid(str,index,len)
截取字符串。 三者的使用方式是一样的。
如果有两个参数, substr(str,index), 表示从 index处开始截取,到最后结束。
如果有三个参数, substr(str,index,len), 表示从index处开始截取,只截取 len个长度。
截取的顺序,都是从左往右截取。 其中,index可以为正,也可以为负,为负表示从后往前数。
如果 len<=0, 那么返回的是空字符串。
mysql 默认开始的位置是1.
select substr('abcdefg',3),substring('abcdefg',3,3), substring('abcdefg',-5), substring('abcdefg',-5,4);
‘abcdefg’, 正数第3个,是 c. 倒数第5个是,c