5

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

截屏

我正在尝试找到一种方法来删除每个轮数/数字对的除最新(最高 id)行之外的所有行。我绝对可以编写这个脚本,但我想知道是否有办法在纯 SQL 中做到这一点?

4

1 回答 1

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
)
于 2013-08-09T17:59:34.633 回答