1.length:获取字节个数
对于MySQL中的length与Java中略有不同,MySQL中length获取的是给定参数占的字节数,如果全是英文的情况下,一个字符占一个字节,那么使用length可以得到字符串的长度,但是如果有中文就不可以,例如使用utf-8编码,一个中文需要3个字节
select length('apple');
select length('apple中国');
由于上述字符串中含有中文,而windows的docs使用的是gbk编码方式,一个中文用两个字节标识,所以最终得到该结果为9个字节,并不是字符串的长度。
2.concat:拼接字符串
在Java中,通常是使用+来进行拼接字符串,但是在MySQL中没有这种语法,为了实现字符串拼接的任务,可以使用该函数:
select concat('a', 'b', 'c')
对于括号中本例子使用的是常量,还可以指定表的字段名来达到将表中的两个字段进行拼接。
3.upper、lower:大小写转换
该函数可以将输入的字符串进行大小写转换:
select upper('apple'), lower('Tom');
4.substr:截取字符串
MySQL中的截取字符串函数与Java等语言不太一样,它的开始索引是从1开始
例1:截取从指定索引后面的所有字符
select substr('apple', 2);
例2:截取从索引处指定长度的字符串
该函数会从字符串的第二个位置开始,截取长度为3的字串作为输出结果
select substr('apple', 2, 3);
例3:将姓名首字母大写,其它字符小写,然后用_拼接
select concat(upper(substr(last_name, 1, 1)), '_', lower(substr(last_name, 2)));
5.instr:返回字符串第一次出现位置索引
这个函数可以看成是indexof方法,用于返回字符串第一次出现位置索引
select instr('hello world hello', 'llo');
6.trim:去空格
select trim(' abc ');
该方法也可以去除其它前后缀,需要自己手动指定,下面例子为去除首尾的a
select trim('a' from 'aaaaa123ABCaaaaa')
7.lpad、rpad:用指定的字符实现填充指定长度
第一个参数代表字符串,第二个参数是填充长度,第三个是用于填充的字符,如果原字符串长度不足填充长度,则使用字符进行填充。
select lpad('apple', 10, '*');
如果设置的填充长度小于原有字符串,则将其进行截断
select lpad('apple', 3, '*');
8.replace:字符串替换
第一个参数为传入的字符串,第二个参数是需要替换的字符串,第三个参数是替换后的字符串
select replace('apple 123 apple 456', 'apple', 'hello world');












