假设我有一个像这样的列
的集合user_id | username | updated_at | data...
user_id
和username
在集合中不是唯一的,因此您可以拥有类似的内容
user_id | username | updated_at | data...
------------------------------------------
1 | test | 140****** | ...
4 | test2 | 140****** | ...
1 | test | 139****** | ...
7 | meh | 140****** | ...
但我想删除重复的事件;我尝试了GROUP BY
但是它给了我一些意想不到的东西,因为很多项目都被删除了(我猜它们会出现在集合的后面,因为查询中有一个LIMIT
)。
答案 0 :(得分:1)
如果您需要选择所有数据 - 首先,您应该决定如何获取updated_at和数据列。
如果您想要连接数据并且想要拥有最新的updated_at,那么
SELECT user_id, username, max(updated_at), group_concat(data separator ',')
FROM table_name
GROUP BY user_id, username
ORDER BY user_id, username
LIMIT X
在这种情况下,您的数据将按user_id和用户名
排序注意: 从您的问题中不清楚是否要从表本身或仅从结果集中删除数据。
答案 1 :(得分:0)
这是你想要的吗?
select distinct user_id, username
from table t;