MYSQL查询 - 获取倒数第二个分隔值

时间:2013-11-06 20:06:55

标签: mysql

我的记录集有一个包含以下值的字段:

Product Tree 1->Product Tree 2->Product Tree 3->Product Tree 4
Product Tree 1->Product Tree 2->Product Tree 3
Product Tree 1->Product Tree 2->

我想使用' - >'返回倒数第二个分隔值作为一个分水岭。 所以在我的例子中,第一行将返回'Product Tree 3',第二行将返回'Product Tree 2'和第三个Product Tree 1.我不能将PHP用于此目的,它必须在MYSQL中完成。

我开始尝试使用SUBSTRING_INDEX。 我发现:

SELECT REPLACE( SUBSTRING_INDEX( 'Product Tree 1->Product Tree 2->Product Tree 3->Product Tree 4', '->', 3 ) , 'Product Tree 1->', '' ) AS header

返回'Product Tree 2-> Product Tree 3',因此在第一个'Product Tree 1'之后给出了下一个分隔的2个值。

但是我怎样才能获得倒数第二个分隔值?

1 个答案:

答案 0 :(得分:0)

为关系数据库保留数据的一种奇怪的格式。假设您可以使用string functions并执行此操作:

SET @foo = 'Product Tree 1->Product Tree 2->Product Tree 3->Product Tree 4';

SELECT substring_index(substring_index(@foo, '->', -2), '->', 1);