这是我的数据
我需要按data_id分组并运行一个选择查询,以便以data_id = 2为例,以这种方式返回数据。
optics_finish:3673|optics_reticle:3923,3924
使用group_concat,我已成功获取所有数据,但返回的结果如下:
optics_finish:3673|optics_reticle:3923|optics_reticle:3924
但事实是我无法重复属性代码。我需要一个组中的一个组,并且不断收到错误消息:无效使用了组功能。
谢谢你的帮助!
最佳答案
如果您发布使用过的查询,那将是非常有帮助的,但是无论如何...我想我可以通过以下查询得到您想要的结果
SELECT data_id, GROUP_CONCAT(CONCAT_WS(':', attribute_code, IDs) SEPARATOR '|') AS concatMess
FROM
(
SELECT data_id, attribute_code, GROUP_CONCAT(attribute_id SEPARATOR ',') AS `IDs`
FROM data
WHERE 1
GROUP BY attribute_code
) sq
GROUP BY data_id;
注意:
SEPARATOR ','
并不是必需的,但我想明确一点。随时将其删除结果:
data_id concatMess
1 manufacturer:148
2 optics_finish:3673|optics_reticle:3923,3924