我有一张名为history
的表格,
它有三列。
id
,value
,timestamp
Id
不是主键,但(id, timestamp)
对是唯一的。
我想要做的是删除超过特定限制的特定ID的所有旧记录。
例如,如果我有这些值:
-1,value1,1
-1,value2,2
-1,value3,3
-2,value4,4
-2,value5,5
-2,value6,6
限制为2.执行语句后,我应该得到类似的内容:
-1,value2,2
-1,value3,3
-2,value4,4
-2,value5,5
-2,value6,6
答案 0 :(得分:1)
我想我拥有它(尝试过我的测试用途),答案是:
DELETE FROM history WHERE id = ?1 AND timestamp NOT in (SELECT sourcetime FROM history WHERE id =?1 ORDER BY timestamp DESC LIMIT ?2);
答案 1 :(得分:-1)
DELETE FROM ... WHERE timestamp < ...
不起作用?