mysql-获取字符串中分隔符之间的值

jyztefdp  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(354)

我有一个逗号分隔的字符串 1,2,3,4,5 或者 1,2,3,4,5,5,8 或者 1,2,2,6,6,7,8 我想要任何介于第三个逗号和最后一个逗号之间的东西,去掉最后一个元素。
结果 1,2,3,4,5 应该是 4 . 结果 1,2,3,4,5,5,8 应该是 4,5,5 . 结果 1,2,2,6,6,7,8 应该是 6,6,7 .
我试过用下面的。但当第3个值与第1个或第2个值相同时失败。

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

gtlvzcf81#

嗯。要除去最后一个元素:

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
            )
hgb9j2n6

hgb9j2n62#

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

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

相关问题