在MySQL中,我想要删除重复的行,同时保留包含这些重复项的user_id列表:
user_id message lattitude longitude status img_name
------------------------------------------------------------------------------
3 hello test multiple 42.0473347 89.4525034 P ced5m
4 hello test multiple 42.0473347 89.4525034 P ced5m
5 hello test multiple 42.0473347 89.4525034 P ced5m
6 hello test new 42.0473347 89.4525034 P ced5WEXm
7 hello test new 42.0473347 89.4525034 P ced5WEXm
8 hello test new 42.0473347 89.4525034 P ced5WEXm
我想将3,4,5和6,7,8行折叠成:
user_id message lattitude longitude status img_name
-------------------------------------------------------------------------------------
3,4,5 hello test multiple 42.0473347 89.4525034 P ced5m
6,7,8 hello test new 42.0473347 89.4525034 P ced5WEXm
最好的方法是什么?
答案 0 :(得分:4)
SELECT GROUP_CONCAT(`user_id` separator ',') as user_ids,
message,
lattitude,
longitude,
status,
img_name
FROM table_name
GROUP BY img_name, message;
使用Above查询获得相关结果。
答案 1 :(得分:3)
试试这个:
SELECT GROUP_CONCAT(user_id separator ','),
message,
lattitude,
longitude,
STATUS,
img_name
FROM YourTable
GROUP BY message,
lattitude,
longitude,
STATUS,
img_name
您可以删除部分GROUP BY列。请参阅here以评估其中是否有任何条件允许您删除它们以便在查询中获得更好的性能。
答案 2 :(得分:2)
您可能需要按列调整组:
select group_concat(user_id),
message,
lattitude,
longitude,
status,
img_name
from test
group by
message, img_name;
SQL小提琴: http://sqlfiddle.com/#!2/8b9b2/1