1

我的记录集有一个包含这些值的字段:

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

返回“产品树 2-> 产品树 3”,因此在第一个“产品树 1”之后给了我下一个分隔的 2 个值。

但是我将如何获得倒数第二个分隔值?

4

1 回答 1

0

将数据保存在关系数据库中的一种奇怪的格式。假设您可以只使用字符串函数并执行以下操作:

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

SELECT substring_index(substring_index(@foo, '->', -2), '->', 1);
于 2013-11-06T20:26:16.747 回答