1、从左开始截取字符串
left(str, length)
说明:left(被截取字段,截取长度)
例:select left(content,200) as abstract from my_content_t
2、从右开始截取字符串
right(str, length)
说明:right(被截取字段,截取长度)
例:select right(content,200) as abstract from my_content_t
3、截取字符串
substring(str, pos)
substring(str, pos, length)
说明:substring(被截取字段,从第几位开始截取)
substring(被截取字段,从第几位开始截取,截取长度)
例:select substring(content,5) as abstract from my_content_t
select substring(content,5,200) as abstract from my_content_t
(注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度)
4、按关键字截取字符串
substring_index(str,delim,count)
说明:substring_index(被截取字段,关键字,关键字出现的次数)
如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容
相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容
对于第四条:
例如:
有一个字符串,我想把中间的时间取出来,即10,用sql怎么写呢,,,
"用时10秒,承保出单成功,商业险保单号:SSSSSSSSSSSSSSS,交强险保单号:AAAAAAAAAAAAAAAAAAAAAAA,微信通知前台用户",
"用时10秒,承保出单成功,商业险保单号:SSSSSSSSSSSSSSS,交强险保单号:AAAAAAAAAAAAAAAAAAAAAAA,微信通知前台用户",
答案:
SUBSTRING_INDEX(SUBSTRING_INDEX(msg,'秒',1),'时',-1)