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

如何在MySQL中从短横线分隔的列筛选指定范围的数据?

解决方案

你可以借助MySQL的字符串拆分函数和类型转换来实现这个筛选需求,具体实现方式如下:

  • 用SUBSTRING_INDEX拆分短横线分隔的内容:
    • SUBSTRING_INDEX(目标列名, '-', 1) 提取短横线左侧的字符串
    • SUBSTRING_INDEX(目标列名, '-', -1) 提取短横线右侧的字符串
  • 通过CAST将提取出的字符串转为数值类型(这里用DECIMAL(10,2),精度可根据你的数据实际情况调整)
  • 添加数值比较条件,筛选出左侧值大于X、右侧值小于Y的行

假设目标列名为range_col,替换成你实际的列名后,示例SQL语句如下:

SELECT * 
FROM example 
WHERE 
  -- 先过滤格式不正确的行,避免非短横线分隔的数据导致转换报错
  LOCATE('-', range_col) > 0
  -- 左侧数值大于示例下限2.5
  AND CAST(SUBSTRING_INDEX(range_col, '-', 1) AS DECIMAL(10,2)) > 2.5 
  -- 右侧数值小于示例上限7.2
  AND CAST(SUBSTRING_INDEX(range_col, '-', -1) AS DECIMAL(10,2)) < 7.2;

实际使用时,直接把语句中的2.5和7.2替换成用户输入的X和Y即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:54:30