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

MySQL技术问询:如何从同一列选取Health & Fitness至Technology间的数据

如何用MySQL查询介于Health & Fitness与Technology之间的数据

嘿,我来帮你搞定这个查询需求!从你给出的数据集来看,每条记录都是ID|分类名称的格式,要筛选出Health & Fitness(对应ID=1)和Technology(对应ID=5)之间的内容,这里有两种实用的方案:

方案1:通过ID筛选(推荐!)

这种方法最稳妥,因为ID是有序的数字,完全不会受分类名称的字符串排序规则影响。我们可以用SUBSTRING_INDEX函数把ID从字符串里拆出来,再做范围判断:

-- 记得把`your_table`换成你的实际表名,`your_column`换成存储这些数据的列名
SELECT *
FROM your_table
WHERE 
  -- 拆分出ID并转为数字类型
  CAST(SUBSTRING_INDEX(your_column, '|', 1) AS UNSIGNED) > 1
  AND CAST(SUBSTRING_INDEX(your_column, '|', 1) AS UNSIGNED) < 5;

要是你需要把两端的Health & Fitness和Technology也包含进来,直接把条件改成BETWEEN 1 AND 5就行:

SELECT *
FROM your_table
WHERE CAST(SUBSTRING_INDEX(your_column, '|', 1) AS UNSIGNED) BETWEEN 1 AND 5;

方案2:通过分类名称筛选(慎用)

如果你的ID顺序和分类名称的字母顺序完全一致,也可以直接用字符串比较来筛选,但要注意:字符串排序会受数据库字符集和排序规则影响,结果可能不如ID筛选稳定。语句如下:

SELECT *
FROM your_table
WHERE 
  -- 拆分出分类名称部分
  SUBSTRING_INDEX(your_column, '|', -1) > 'Health & Fitness'
  AND SUBSTRING_INDEX(your_column, '|', -1) < 'Technology';

小提示

一定要把语句里的your_table和your_column替换成你实际使用的表名和列名哦!优先选方案1,毕竟数字ID的排序逻辑更清晰可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:18:29