mysql - 提取整个字符串直到最后一个分隔符

标签 mysql sql string

我需要查询其中包含有关产品的信息。产品名称如下所示:

Samsung TV 1500 - LED - USA
Sony 19.2/2.12/12V3/320/AE-EL:SILVER-ITA

这是我正在使用的:

SELECT
 TRIM( 
    LEFT(
         a.description, 
        (LENGTH( a.description) - LOCATE('-', a.description)) 
    )
)
FROM products

但它提供的是Samsung TV 1500,而不是Samsung TV 1500 - LED。 我需要的只是删除最后一个 -USA-IND 等。

最佳答案

您需要反转该值,以便最后一个出现的位置成为第一个出现的位置。

SELECT
 TRIM( 
    LEFT(
         a.description, 
        (LENGTH( a.description) - LOCATE('-', REVERSE(a.description))+1) 
    )
)
FROM products

关于mysql - 提取整个字符串直到最后一个分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47998744/

相关文章:

php - 使用 PDO 但仍然可以 SQL 注入(inject)

mysql - 检查MySQL状态

php - 将日期格式(在 DB 或输出中)更改为 dd/mm/yyyy - PHP MySQL

php - 计算两个日期时间之间的差异

mysql - 安装 Mongify 时出错

mysql - 链接数据库表标准实践

c++ - XMLString::transcode 的用途

mysql - 为什么 MySQL 命令行客户端拒绝我的语句,而 Workbench 对此没有问题?

php - 寻找两段文本之间的匹配短语?

c - 如何从调用者分配的内存空间中捕获由被调用者组织的字符串数组?