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

标签 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->

我想使用“->”作为分隔符返回倒数第二个分隔值。 所以在我的示例中,第一行将返回“产品树 3”,第二行将返回“产品树 2”,第三行将返回产品树 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 个值。

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

最佳答案

为关系数据库保存数据的一种奇怪格式。假设你可以只使用 string functions并这样做:

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

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

关于MYSQL 查询 - 获取倒数第二个分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19821729/

相关文章:

mysql - 创建新的 MySQL 数据库最有效的方法是什么

MySQL 查询多个值的计数

php - 我想用 mysqldump 备份表的最后记录

mysql - 平均计算程序

mysql - 错误 1022 - 无法写入;表中的重复键

php - 使用 php,如何查询 MySQL 表中行中存储的某些关键字以显示相关信息?

mysql - SQL 在一个查询中进行多项求和

php - 警告 : mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

mysql - 如何在 JPA/Hibernate @NamedNativeQuery 和 Spring Data 中使用 "like"谓词和 "%"

php - 我想在 Insert 语句中将当前的 "UserID"传递到数据库中。 php/mysql