MySQL-在字符串中获取定界符之间的值

时间:2018-10-10 15:13:22

标签: mysql sql substring

我有一个用逗号分隔的字符串,例如

1,2,3,4,51,2,3,4,5,5,81,2,2,6,6,7,8

我想要在第三逗号最后一个逗号之间的任何内容,而忽略最后一个元素。

1,2,3,4,5的结果应为41,2,3,4,5,5,8的结果应为4,5,51,2,2,6,6,7,8的结果应为6,6,7

我尝试了以下方法。但是当第三个值与第一个或第二个值相同时,它将失败。

SUBSTRING( LEFT(string, LENGTH(string)
    - LOCATE(',', REVERSE(string)))
    , LOCATE(SUBSTRING_INDEX(SUBSTRING_INDEX(string, ',', 3), string ))

2 个答案:

答案 0 :(得分:2)

嗯。要摆脱最后一个元素:

select substr(string, 1, length(string) - substring_index(string, ',', -1) - 1)

然后摆脱前三个:

select substr(substr(string, 1, length(string) - substring_index(string, ',', -1) - 1),
              substring_index(string, ',', 3) + 1
            )

答案 1 :(得分:0)

最后,这就是我要解决的问题。欢迎发表评论。

select  SUBSTRING(@String,length(SUBSTRING_INDEX(@String,',',3))+2, 
            (length(@String) - length(SUBSTRING_INDEX(@String,',',-1))-length(SUBSTRING_INDEX(@String,',',3)) -2));