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

如何统计从MySQL数据库获取的逗号分隔值中指定数值的出现次数

统计逗号分隔列中特定数字的出现次数

嘿,我来帮你搞定这个问题!先看你的表数据:

+---------+-------------+
| id      | Values      |
+---------+-------------+
| 11      | 1,2,4,5,6   |
| 12      | 1,2,6       |
| 13      | 4,5,6       |
| 14      | 2,3,6       |
+---------+-------------+

要统计数字6的出现次数,因为Values列是逗号分隔的字符串,直接用COUNT()没法精准统计每个字符串里的目标数字。这里给你一个简单有效的方法,用字符串替换结合长度计算来实现:

SELECT 
  SUM(
    (LENGTH(Values) - LENGTH(REPLACE(Values, '6', ''))) / LENGTH('6')
  ) AS count_of_6
FROM your_table_name;

拆解一下这个查询的逻辑:

  • REPLACE(Values, '6', ''):把每一行Values里的所有6都替换成空字符串
  • LENGTH(Values) - LENGTH(...):用原字符串的长度减去替换后的长度,这个差值就是所有6的总字符数
  • 除以LENGTH('6')(这里是1,因为6是单个字符),就能得到每行中6的出现次数
  • 最后用SUM()把所有行的次数加起来,就是整个表中6的总出现次数

执行这个查询后,你会得到结果4,和你预期的完全一致。

额外提醒:

  • 如果要统计的是多位数(比如12),记得把LENGTH('6')改成对应数字的长度,比如LENGTH('12'),不然计算会出错
  • 如果Values列里的数字带有多余空格,记得先去掉空格再统计,比如先做REPLACE(Values, ' ', '')处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:13:19