mysql—sql中重复字符串情况下的子字符串索引

wmvff8tz  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(405)

我需要一个sql查询来获取两个已知字符串之间的值,这两个字符串重复了很多次或两次。举个例子。

base- 2019|ACX9|PTG-C|PPP1-MMM1|7986847

期望的结果是源中的ppp1和存储中的mmm1。
我已经想到这个了

select
base,
substring_index(substring_index (base,'-',1),'|',-1) as source, 
substring_index(substring_index (base,'-',-1),'|',1) as store_loc

from order_tracking

这是很好的工作与基地一样

2019|ACX9|PTGA|PPP1-MMM1|7986847

但不是和基地一起工作

2019|ACX9|PTG-C|PPP1-MMM1|7986847

这里它给出了ptg的来源。
有人能帮我找出哪里出了问题吗?

o4hqfura

o4hqfura1#

您似乎想解析分隔列表中倒数第二个项。你得先拿到,然后再分。那是三个 substring_index() 学生:

select substring_index(substring_index(substring_index(base, '|', -2), '|', 1), '-', 1), as source,
       substring_index(substring_index(substring_index(base, '|', -2), '|', 1), '-', -1) as store_loc    
from (select '2019|ACX9|PTG-C|PPP1-MMM1|7986847' as base) x

相关问题