这是我的数据
我需要按data_id分组并运行一个select查询,以便以这种方式返回数据,使用data_id = 2作为示例。
optics_finish:3673|optics_reticle:3923,3924
使用group_concat,我成功获取了所有数据,但它返回如下:
optics_finish:3673|optics_reticle:3923|optics_reticle:3924
但问题是我无法重复属性代码。我需要一个组内的一个组,我不断收到错误无效使用组功能。
感谢您的帮助!
答案 0 :(得分:2)
如果您发布您使用的查询,那将非常有用,但无论如何......我想我能够通过以下查询获得您正在寻找的结果
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
答案 1 :(得分:0)
这是你需要的吗?
select data_id,
concat_wc('|',
group_concat(case when attribute_code = 'optics_finish' then attribute_id end),
group_concat(case when attribute_code = 'optics_reticle' then attribute_id end)
) as attributes
from table t
group by data_id