重新编写mySQL表

时间:2013-08-09 17:56:32

标签: mysql sql

编程错误导致此表中多次插入相同的行。我知道架构中的约束可能会阻止插入。

screenshot

我正试图找到一种方法来删除每个轮次/数字对的最新(最高id)行。我绝对可以编写脚本,但我想知道是否有办法在纯SQL中执行此操作?

1 个答案:

答案 0 :(得分:7)

通常你可以这样做:

delete from your_table
where id not in 
(
    select max(id) from your_table
    group by user, round, date, number
)

在MySQL中,您无法从您选择的同一个表中删除。但你可以使用另一个子查询来欺骗MySQL:

delete from your_table
where id not in 
(
   select * from 
   (
      select max(id) from your_table
      group by user, round, date, number
   ) x
)