由于某些原因要提取工单标题中的人员英文名,通过SQL截取快速筛选数据
数据示例: [系统自动触发]Apple是一个大帅帅帅哥 [系统自动触发]peanut是一个大帅帅帅哥 ······ 要求:取出英文Apple,peanut
分析: 1、从左边9开始始截取结束:peanut是一个大帅帅帅哥 2、从左边1开始截取到(长度-8)
代码如下(示例):
1、left(str,index) 从左边第index开始截取
select left('[系统自动触发]peanut是一个大帅帅帅哥', 11);2、right(str,index)从右边第index开始截取
select right('[系统自动触发]peanut是一个大帅帅帅哥', 11);3、substring(str,index)当index>0从左边开始截取直到结束 当index<0从右边开始截取直到结束 当index=0返回空
select substring('[系统自动触发]peanut是一个大帅帅帅哥', 11)4、substring(str,index,len) 截取str,从index开始,截取len长度
select substring('[系统自动触发]peanut是一个大帅帅帅哥', 9,5)5、substring_index(str,delim,count),str是要截取的字符串,delim是截取的字段 count是从哪里开始截取(为0则是左边第0个开始,1位左边开始第一个选取左边的,-1从右边第一个开始选取右边的
select substring_index('[系统自动触发]peanut是一个大帅帅帅哥', 'p',1) select substring_index('[系统自动触发]peanut是一个大帅帅帅哥', 'p',-1)6、subdate(date,day)截取时间,时间减去后面的day
select subdate(SYSDATE(),1)7、subtime(expr1,expr2) 时分秒expr1-expr2
SELECT subtime(SYSDATE(),'1:1:1')length: 是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符
SELECT LENGTH('[系统自动触发]peanut是一个大帅帅帅哥')CHAR_LENGTH(str) 返回值为字符
SELECT CHAR_LENGTH('[系统自动触发]peanut是一个大帅帅帅哥')MySQL的函数还是挺多的,这次处理数据用了数据截取substring,字段长度CHAR_LENGTH