我的记录集有一个包含以下值的字段:
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个值。
但是我怎样才能获得倒数第二个分隔值?
答案 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);