删除mysql表中重复的记录,如何从MySQL表中删除重复的记录?

I would be grateful if you could help me to solve this sql problem.

I have a table that contains two columns. Name them UserID and LocationID in this example.

I would like to clean this table, so I would like to keep the first occurences of each unique pairs of UserIDs and LocationIDs and delete additional rows that contains the same pairs. In other words I would like to know every location for each user where he has been to. If he visited the same place again and again and it was logged, I would like to delete those records. For example, this is the original table:

ID UserID LocationID

1. "user1" "location1"

2. "user1" "location2"

3. "user2" "location3"

4. "user1" "location1"

5. "user2" "location3"

6. "user2" "location3"

I would like to remove the 4., 5. and 6. rows.

Is it possible to solve it in one mysql command?

Thanks.

解决方案

Delete using a self-join:

DELETE t2.*

FROM tablename AS t1

INNER JOIN tablename AS t2

ON t1.UserID = t2.UserID

AND t1.LocationID = t2.LocationID

WHERE t1.ID < t2.ID

tablename should be replace with the name of your table.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值