在MySql中基于时间戳嵌套Delete
|
我有一个数据库,其中包含CMS驱动的网站的所有内容更新。我想创建一个查询,该查询将清除所有旧内容,但请留给我每页最近的几(5)份副本(以防万一)。该表包含一个TIMESTAMP字段和一个PAGE ID字段,以帮助我找到正确的行。 PrimaryKey是一个名为RevisionId的字段。当然还有其他字段(例如包含页面内容),但它们与该问题无关。
我有这个查询工作正常:
SELECT RevisionId
FROM `content`
WHERE PageId=\'55\'
ORDER BY Timestamp DESC LIMIT 5;
它返回五个要保存的条目。
我以为可以这样嵌套:
DELETE
FROM `content`
WHERE PageId=\'55\'
AND RevisionId NOT IN (
SELECT RevisionId
FROM `content`
WHERE PageId=\'55\'
ORDER BY Timestamp DESC LIMIT 5 );
...但这给了我一个错误:
#1235-此版本的MySQL不支持\'LIMIT&IN / ALL / ANY / SOME子查询\'
我正在运行MySQL 5。
两部分问题:
我需要做些什么来解决我到目前为止遇到的错误?
有没有办法进一步自动化它来运行我的
整个表格...而不仅仅是PageId = \'55 \'
但是所有不同的PageId号码?
没有找到相关结果
已邀请:
2 个回复
街茬
摊揉售