在 MySQL 中,如何把某字段中的字符串截取,获取自己需要的那一段字串呢?
比如,我这里有个字符串:
- 1/2015#HEBEI QINHUANGDAO#1507#VRHC9#100#LADEN 2/ABI#ABASHIRI#JAPAN 3/2015-07-01 16:38#2015-07-08 16:38/LOAD 4/1.0#2.0#3.0###0.0# 5/1#2#S#3#4#W 6/S/5 7/11.00#22.00#33.00 8//###### 9/ETB/POSITION#11#22#S#33#44#W/REVERTING 10/1/2.0/3.0/4.0 11/5.0/6.0/7.0/8.0/9.0/10.0/11.0 12// 13/
如何从中截取“ /3”到“ /4”之间的字符串呢?
查了一下,MySQL提供了一下几个字符串截取函数。
1.从左开始截取字符串。
left(str, length)
说明:left(被截取字段,截取长度)
2.从右开始截取字符串。
right(str, length)
说明:right(被截取字段,截取长度)
3.从指定位置截取字符串,或者截取指定长度字符串。
substring(str, pos)
substring(str, pos, length)
说明:substring(被截取字段,从第几位开始截取)
substring(被截取字段,从第几位开始截取,截取长度)
4.按关键字截取字符串。
substring_index(str,delim,count)
说明:substring_index(被截取字段,关键字,关键字出现的次数)
注意:如果关键字出现的次数是负数 如-2 则是从后倒数,到字符串结束。
如果想满足上面的截串需求,看来只有第 4 个函数才行。SQL 语句如下:
- SUBSTRING_INDEX(SUBSTRING_INDEX(str, ' 4/', 1),' 3/',-1) AS str
截取结果为:2015-07-01 16:38#2015-07-08 16:38/LOAD