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

如何用MySQL查询合并同一EAN的多分类,实现EAN唯一?

如何用MySQL实现将同一EAN的多分类合并为单条记录?

完全可以通过MySQL内置函数实现这个需求,核心是借助GROUP_CONCAT()聚合同一EAN对应的所有分类,配合GROUP BY保证EAN唯一性。

假设你的表名为product_categories,执行以下SQL查询即可:

SELECT 
    ean,
    GROUP_CONCAT(cat SEPARATOR '|') AS cat
FROM 
    product_categories
GROUP BY 
    ean;

关键说明:

  • GROUP_CONCAT(cat SEPARATOR '|'):将同一分组(同一EAN)下的所有cat值用|拼接成单个字符串;若不指定SEPARATOR,默认用逗号分隔,这里显式指定为|匹配需求。
  • GROUP BY ean:按ean字段分组,确保每个EAN仅返回一条记录。

示例验证:

原始数据:

9791023507133; category1
9791023507133; category2
9791036317309; category1
9782745929334; category1
9782081286603; category1
9782745943835; category1

执行上述SQL后,得到目标结果:

9791023507133 | category1|category2
9791036317309 | category1
9782745929334 | category1
9782081286603 | category1
9782745943835 | category1

额外注意:

GROUP_CONCAT()有默认长度限制(默认1024字节),若分类过多导致拼接字符串超长,可临时调整会话参数:

SET SESSION group_concat_max_len = 10000;

该设置仅在当前会话生效,如需全局生效需修改MySQL配置文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:40:05