mysql - 删除除一条记录之外的所有重复记录

标签 mysql

我想从表中删除除一条记录 (tbl_user_points) 之外的所有重复记录

表格数据

id  userid  points  Reason
------------------------------
132 1278    50  Bonus points
153 1278    50  Bonus points
174 1278    50  Bonus points
195 1278    50  Bonus points

所以我的最终输出将是

id  userid  points  Reason
------------------------------
132 1278    50  Bonus points

请帮我解决这个问题

最佳答案

试试这个

   Delete
       t1
    FROM 
       tTable t1, tTable t2 
    WHERE 
       t1.userid  = t2.userid  AND 
       t1.points  = t2.points  AND 
       t1.Reason  = t2.Reason AND 
       t1.id < t2.id

(或)

这将始终保留 ID 最小的行 -

  DELETE t2
    FROM `table` t1
    INNER JOIN `table` t2
        ON t1.userid  = t2.userid  AND 
           t1.points  = t2.points  AND 
           t1.Reason  = t2.Reason AND 
           t1.id < t2.id

关于mysql - 删除除一条记录之外的所有重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21202660/

相关文章:

PHP 查看计数器

.net - MySql - 如何诊断连接被拒绝的原因?

mysql - 我的 mysql 函数有一个错误

MySQl DATE Format 将 Varchar 更新为不同格式的日期

php - MySQL 和 PHP - 创建多个父子关系

php - 时间到日期转换

mysql - 从 2 个 mysql 表中选择产品及其关联图像之一的最佳方法

php - 如果搜索结果不存在则隐藏表

mysql - 将用户保存在 openfire xmpp 中的自定义表中

mysql - 1292 : Incorrect datetime value: '' for column at row 1