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

如何批量查询含多个唯一worm_id的event_id并聚合worm_id列表?

解决批量查询多worm_id的event_id需求

嘿,我来帮你搞定这个批量查询的问题!你需要找出所有在同一个event_id下存在多个不同非空worm_id的记录,并且把对应的worm_id用逗号拼接成列表,这个需求用MySQL的分组和聚合函数就能轻松实现。

最终查询语句

SELECT 
    event_id,
    GROUP_CONCAT(DISTINCT worm_id ORDER BY worm_id SEPARATOR ',') AS worm_ids
FROM fruits
WHERE worm_id IS NOT NULL
GROUP BY event_id
HAVING COUNT(DISTINCT worm_id) > 1;

语句详解

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

  • WHERE worm_id IS NOT NULL:先过滤掉worm_id为空的记录,因为我们只关心有实际值的worm_id
  • GROUP BY event_id:将数据按event_id分组,这样我们可以单独处理每个事件下的worm_id
  • HAVING COUNT(DISTINCT worm_id) > 1:筛选出那些分组内包含多个不同非空worm_id的event_id(COUNT(DISTINCT)确保我们统计的是唯一值,避免重复的worm_id干扰判断)
  • GROUP_CONCAT(DISTINCT worm_id ...):把每个符合条件的分组里的唯一worm_id用逗号拼接成字符串,ORDER BY worm_id可以让列表按数字顺序排列,看起来更整齐

测试结果

用你的数据集测试这个语句,会得到你期望的输出:

+-----------------+-----------------+
| event_id        | worm_ids        |
+-----------------+-----------------+
| 1468036258-1426 | 134,135         |
+-----------------+-----------------+

这个查询会自动遍历所有event_id,批量找出所有符合条件的记录,不用再手动逐个查询啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:43:07