是否可以连接(在一个字段中)结果中的所有行 我的表就像那样:
ID STRING
1 a,aa
2 xxx
3 str
4 aa,xx
我想要像:
ID STRING CONCAT
1 a,aa a,aa xxx str aa,xx
2 xxx a,aa xxx str aa,xx
3 str a,aa xxx str aa,xx
4 aa,xx a,aa xxx str aa,xx
我尝试过GROUP_CONCAT,但那并不是我想要的......
有什么想法吗? 再见
更新2:
实际上,这是我的要求
SELECT DISTINCT
(SELECT GROUP_CONCAT(LABEL_ID) FROM DOCUMENT WHERE ENTITY_ID = `p`.id) as label,
`p`.*,
(6371*acos(cos(radians(48.8817))*cos(radians(LATITUDE))*cos(radians(LONGITUDE) - radians(2.3822))+sin(radians(48.8817))*sin(radians(LATITUDE)))) AS `dist`,
`a`.`NUMBER_COMM`,
`a`.`AVE`
FROM `PRO` AS `p`
INNER JOIN `PRO_JOB_RELATION` AS `j_rel` ON p.ID = j.ID_PRO
INNER JOIN `COMM` AS `a` ON p.ID = a.ID_PRO WHERE (p.ETAT = 1)
AND (j.ID_METIER = '15')
HAVING (dist <= 300 and dist <= `p`.RAYON)
ORDER BY ((AVE * 4) + ((5 * NUMBER_COMM ) / 100)) - ((( 5 * dist) / 100) * 20) / 3 DESC, `CHECKED` DESC
我得到了这个结果:
ID LABEL OTHER
1 2,3 ...
2 NULL ...
3 2 ...
4 8,2 ...
我真正需要的是这样的东西:
ID LABEL OTHER LABEL_CONCAT
1 2,3 ... 2,3,8
2 NULL ... 2,3,8
3 2 ... 2,3,8
4 8,2 ... 2,3,8
我无法做到这一点......你能帮助我吗?
答案 0 :(得分:1)
您可以使用group_concat,但在子查询中
select id, string, (select group_concat(string SEPARATOR ' ')
from Table1)
from Table1
请参阅SqlFiddle
答案 1 :(得分:0)
是。有可能的。你可以使用GROUP_CONCAT
聚合函数来完成它。
但是您指定的结果将需要SELECT列表中的子查询或内联视图的JOIN,例如。
SELECT t.id AS `ID
, t.string AS `STRING`
, c.gc AS `CONCAT`
FROM mytable t
CROSS
JOIN ( SELECT GROUP_CONCAT(s.string ORDER BY s.id) AS `gc`
FROM mytable s
) c
ORDER BY t.id
请注意,GROUP_CONCAT
的回复受某些系统变量max_group_concat_len
(类似的东西)和max_allowed_packet
的限制。