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

如何在MySQL中查询获取逗号右侧的完整匹配值

MySQL查询匹配实现方案

假设你的数据表名为your_table,存储目标格式内容的列名为target_col,列内存储格式为[左侧值],[右侧值]的逗号分隔结构,可使用以下查询语句实现需求,其中@search_str为你传入的查询参数:

SELECT * FROM your_table
WHERE 
  -- 针对6167做特殊匹配
  IF(@search_str = '6167',
    SUBSTRING_INDEX(target_col, ',', -1) = '6167',
    -- 其他查询参数校验末尾是否带逗号
    IF(RIGHT(@search_str, 1) = ',',
      -- 带逗号则匹配右侧内容以查询字符串开头的所有行
      SUBSTRING_INDEX(target_col, ',', -1) LIKE CONCAT(@search_str, '%'),
      -- 不带逗号直接返回无结果
      FALSE
    )
  );

效果验证

  • 传入@search_str = '6167':返回所有逗号右侧值正好为6167的行,符合规则1要求
  • 传入@search_str = '67,':返回所有逗号右侧内容以67,开头的匹配行,符合规则2要求
  • 传入任意末尾不带逗号且不等于6167的查询字符串,直接返回空结果,符合规则3要求

如果你不需要对6167做特殊处理,而是需要所有不带逗号的查询字符串都仅匹配逗号右侧完整值,可调整为通用版本:

SELECT * FROM your_table
WHERE 
  IF(RIGHT(@search_str, 1) = ',',
    SUBSTRING_INDEX(target_col, ',', -1) LIKE CONCAT(@search_str, '%'),
    SUBSTRING_INDEX(target_col, ',', -1) = @search_str
  );

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:36:04