我无法构建对mysql的查询,将行从200移除到结束。
DELETE FROM `popular`
WHERE NOT EXISTS(
SELECT *
FROM `popular`
ORDER BY `rank` DESC, `timestamp` DESC
LIMIT 200
)
由于错误 - #1093 - 您无法在FROM子句
中为更新指定目标表'popular'答案 0 :(得分:1)
将其拆分为两个调用:首先运行一个select并找到要删除的行的ID。然后复制这些ID并在删除命令中使用它们。
如果您不想在ID之间手动添加逗号,可以在textpad或excel中使用“查找和替换”,这样做非常简单。
答案 1 :(得分:1)
您可能需要先对行进行排名,然后将其存储在临时表中并标识要删除的行
select @rownum:=@rownum+1 rownum, popular.* from (select @rownum:=0) r, popular order by rank desc, timestamp desc