我有一个表(除其他外)有 2 列(比如 A
和 B
),其中有 primary key
一个带有 timestamp
(说C)。我想删除除最后 XXX 条目之外的所有内容(按时间戳排序时)。谁能帮我解决语法问题吗?我想应该是这样的:
DELETE FROM Table WHERE A, B NOT IN (SELECT A, B FROM Table ORDER BY C DESC LIMIT XXX)
这个 SQL 正确吗?
编辑:不知何故,这个问题因重复而被关闭。然而,所提到的问题仅具有适用于只有一个主键(或索引)的表的答案。如何将其扩展到有两个主键(或索引)的表?
最佳答案
你可以试试这个
DELETE FROM TABLE T1 INNER JOIN (SELECT A, B FROM TABLE ORDER BY C DESC LIMIT XXXX) AS T2 ON T1.A = T2.A AND T1.B = T2.B
在内部选择中定义删除条件。
关于mysql - 从表中删除语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38952505/