繁体   English   中英

从MySQL获取具有唯一列值的集合

[英]Getting a set with unique column values from MySQL

说我有一套这样的列

user_id | username | updated_at | data...

user_idusername在集合中不是唯一的,因此您可以拥有类似这样的内容

user_id | username | updated_at | data...
------------------------------------------
   1    |   test   |  140****** | ...  
   4    |   test2  |  140****** | ...  
   1    |   test   |  139****** | ...  
   7    |   meh    |  140****** | ...   

但我想删除重复的事件; 我尝试了GROUP BY但是由于删除了许多项目,它给了我一些意料之外的东西(我猜想它们会出现在集合的后面,因为查询中有一个LIMIT )。

如果您需要选择所有数据-首先,您应该确定如何获取Updated_at和data列。

如果您希望将数据连接起来并希望获得最新的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和用户名排序

注意:从问题中不清楚是要从表本身还是仅从结果集中删除数据。

这是你想要的吗?

select distinct user_id, username
from table t;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM