我必须从MySQL列中提取某些数据。表格如下:
+----+---------------------+------------------------+
| id | time | data |
+----+---------------------+------------------------+
| 1 | 2016-10-28 00:12:01 | a Q1!! AF3 !! ext!! z |
| 2 | 2016-10-28 02:19:02 | z !!3F2 !AF66-2!! !!a |
| 3 | 2016-10-28 11:35:03 | AF!a !!! pl6 f !!! dd |
+----+---------------------+------------------------+
我想从data
字符到AF
的下一次出现之间抓取!!
列中的字符串所以理想情况下,查询SELECT
id ,[something] AS x FROM tbl
会结果是:
+----+------+
| id | x |
+----+------+
| 1 | 3 |
| 2 | 66-2 |
| 3 | !a |
+----+------+
关于如何做到这一点的想法?我认为所有其他问题都没有关系,因为他们不会在第一针(!!
)之后找到第一次出现第二针(AF
)。
答案 0 :(得分:1)
可能有更快的方法来做到这一点,但这是一个良好的开端:
select substring_index(substring_index(data, 'AF', -1), '!!', 1)