You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL Workbench 8.0中去除指定符号后的字符?

MySQL 8.0 移除指定符号后的所有字符实现方案

MySQL 8.0完全支持你需要的字符串处理需求,可以通过组合内置字符串函数实现。以下是具体的实现方法:

核心逻辑

找到字符串中-、(、[三个符号里最先出现的位置,截取该位置之前的内容,同时处理没有这些符号的场景(直接返回原字符串)。

实现代码

SELECT 
  original_str,
  COALESCE(
    TRIM(SUBSTRING(
      original_str,
      1,
      LEAST(
        NULLIF(LOCATE('-', original_str), 0) - 1,
        NULLIF(LOCATE('(', original_str), 0) - 1,
        NULLIF(LOCATE('[', original_str), 0) - 1
      )
    )),
    original_str
  ) AS processed_str
FROM (
  VALUES
    ('Organic Rice Sticks - Spinach'),
    ('Organic Rice Sticks (Pack of Three)'),
    ('Organic Rice Sticks [Pack of Three]'),
    ('Plain Organic Rice Sticks') -- 无目标符号的测试用例
) AS test_data(original_str);

函数说明

  • LOCATE(symbol, str):返回目标符号在字符串中的起始位置,符号不存在时返回0。
  • NULLIF(val, 0):将0转换为NULL,让后续的LEAST()函数忽略不存在的符号位置。
  • LEAST(a, b, c):取三个有效位置中的最小值,即最先出现的符号位置,减1后得到截取的终点。
  • SUBSTRING(str, 1, pos):从字符串开头截取到指定位置的内容。
  • TRIM():去除截取后内容末尾可能残留的空格(比如符号前的空格)。
  • COALESCE(val1, val2):如果截取结果为NULL(即字符串中无目标符号),则返回原字符串。

执行结果

上述代码运行后会输出:

original_strprocessed_str
Organic Rice Sticks - SpinachOrganic Rice Sticks
Organic Rice Sticks (Pack of Three)Organic Rice Sticks
Organic Rice Sticks [Pack of Three]Organic Rice Sticks
Plain Organic Rice SticksPlain Organic Rice Sticks

内容的提问来源于stack exchange,提问作者beth_9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:22:19