这是我的数据

我需要按data_id分组并运行select查询,以便以这种方式返回数据,并以data_id=2为例。
optics_finish:3673|optics_reticle:3923,3924使用group_concat,我成功地获得了所有数据,但它返回如下:
optics_finish:3673|optics_reticle:3923|optics_reticle:3924但问题是我不能重复属性代码。我需要一个组内的一个组,我总是得到一个错误,无效的使用一个组的函数。
谢谢你的帮忙!
发布于 2014-05-13 15:25:43
如果你发布你使用过的查询会非常有帮助,但是无论如何.我想我可以通过下面的查询获得您想要的结果
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发布于 2014-05-13 15:18:04
这就是你需要的吗?
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_idhttps://stackoverflow.com/questions/23634625
复制相似问题