MySql常用函数之字符函数
这两天我一个朋友去面试,面试聊到MySql这一章节的时候就有问到MySql的常用函数,本来挺容易的,这玩意平时多多少少怎么会都会用到,至少也有点印象实在是想不起来也可以百度,找文档呀,找资料来解决,所以就每太上心,结果面试的时候给人家问懵了,哎!面试结果可想而知了.所以准备记录一期MySql的基本函数.
函数分类:
MySql的函数可以根据它的用法大概的分为两大类1.单行函数 2.分组函数
顾名思义这两货一个主要处理单行操作,一个主要处理分组操作的,这篇主要给各位讲一下单行函数里的字符函数.
常用的字符函数
1.length 主要总用是获取参数集的字节个数(注意是字节不是字符)
语法: length(str)
案例:
select length('张三');
可以看到它的查询结果是6,不是2,这里足以说明它获取的是字符串的字节长度而不是字符长度.
2.concat 拼接字符串
语法: concat(str1,str2…)
案例:
select concat('张三','投了隔壁','李四','的黄瓜') ;
输出结果:
3.upper,lower 大小写转换 upper大写 lower小写
语法: upper(str) lower(str)
案例:
select upper('abCd') , lower('ABcd');
输出结果:
4. substr,substring 截取字符串 其实substr就是substring的简写
他有四个重载函数,而且要注意的是Mysql的索引是从1开始的
- substr(str,index) 从制定的索引开始截取字符串
- substr(str from index) 从制定的索引开始截取字符串 这两个是一样的
案例:
select substr('123456',3) , substr('123456' from 3)
输出结果:
- substr(str from index length)
- substr(str , index , length) 这两个是一样的,都是从指定的索引开始并截取指定长度的字符
案例:
select substr('123456' from 3 for 2) , substr('123456',3,2)
输出结果:
5. instr 返回字符串子串第一次出现的索引,如果找不到则返回0
语法: instr(str,son)
案例:
select instr('123456','23')
输出结果:
6. trim 去除前后指定字符串
语法: 1. 一个参数 trim(str) 默认去除前后空格
案例:
select trim(' 123456 ') ,length(trim(' 123456 ')),length(' 123456 ')
输出结果:
2.两个参数trim(rm from str) 去除指定的字符串
案例:
select trim('a' from 'aaaaa123456aaaaa')
输出结果:
这种的还以一种情况,可以去除多个字符:
案例:
select trim('aa' from 'aaaaa123456aaaaa')
输出结果:
可以看得到这个它会以aa为一个单位去除
7. lpad 如果字符串不满足指定长度,那么用指定字符串向左填充直到满足指定长度,如果字符串超过指定长度,则从右边开始截取直到满足指定长度,
**语法: load(str ,len , padstr) **
案例1:
select lpad('12345',10,'*')
输出结果:
案例2:
select lpad('123456',5,'*')
输出结果:
可以看到当字符串超过指定长度是向右边截取直到满足长度;
8. rpad 如果字符串不满足指定长度,那么用指定字符串向右填充直到满足指定长度,如果字符串超过指定长度,则从右边开始截取直到满足指定长度
**语法: road(str ,len , padstr) **
案例1:
select rpad('12345',10,'*')
输出结果:
案例2:
select rpad('123456',5,'*')
输出结果:
可以看到当字符串超过指定长度是向右边截取直到满足长度;
9. replace 替换 将字符串中出现的字符串替换成指定字符串
语法: replace(str,src,replace)
案例:
select replace('123456','12','23')
输出结果: