字符串函数
char_length(s)
返回串s的字符数,英文算一个,汉字也算一个。
length(s)
返回串s的长度,占了几个字节。
二者区别如下:
select char_length("李华"),length("李华");
concat(s1,s2,…)
合并字符串。
concat_ws(x,s1,s2,…)
合并字符串,但每两个串间要加上x。
select concat_ws('_','李华','男','21');
insert(s1,x,len,s2)
将字符串s2替换s1从x位置开始,长度为len的部分。
select insert('hanmeimei',4,3,'dong');
如果想要纯插入不替换,可将第三个参数设置为0。
select insert('马冬梅',2,0,'_');
upper(s)或ucase(s)
将字符串s的所有字符都变成大写字母。
lower(s)或lcase(s)
将字符串s的所有字符都变成小写字母。
select upper('qwqwdqDDD'),ucase('qqaa');
select lower('qwqwdqDDD'),lcase('qAaa');
left(s,x)
返回串s最左边x个字符。
right(s,x)
返回串s最右边x个字符。
select left('马冬梅',1),right('马冬梅',2);
lpad(s1,len,s2)
用字符串s2填充s1的开始处,使字符串长度达到len,len为字符数,非字节数。
rpad(s1,len,s2)
select lpad('马冬梅',6,'韩梅梅'),rpad('马冬梅',8,'韩梅梅'),rpad('马冬梅',2,'韩梅梅');
用串s2填充s1的结尾处,使串长达到len,len为字符数,非字节数。
ltrim(s)
去掉s开始处的空格。
rtrim(s)
去掉s结尾处的空格。
select ltrim(' a b c d '),rtrim(' a b c d ');
trim(s1 from s)
去掉s中开始和结尾处的字符串s1。
select trim('_' from '_____abcd____');
repeat(s,n)
将字符串s重复n次。
space(n)
返回n个空格。
select repeat(concat('han',space(4)),3);
replace(s,s1,s2)
用字符串s2代替字符串s中的s1字符串。
select replace('ababababa','aba','---');
strcmp(s1,s2)
比较字符串s1和s2。
substring(s,n,len)
取s的子串从n开始,长为len。
position(s1 in s)
获取串s中s1的开始位置。