我有这样的表(TABLE_NAME
):
我想检查计数是否超过 5,如果是,则删除时间戳值最低的行。在这个例子中,它应该删除最后一行。
我想用一个复杂的删除语句来做到这一点。任何想法如何实现这一目标?
DELETE
FROM TABLE_NAME
WHERE TIMESTAMP < (
SELECT TIMESTAMP
FROM (
SELECT TIMESTAMP
FROM TABLE_NAME
ORDER BY TIMESTAMP DESC
) LIMIT 1 OFFSET 4);
通过此查询,您:
我没有对其进行测试,但这应该是解决您问题的查询。
这是您的解决方案
delete from TABLE_NAME where timestamp IN (select min(timestamp) from TABLE_NAME where (SELECT count() FROM TABLE_NAME)>5)
它将检查您的 tableRecord 计数是否大于 5,然后删除最小时间戳记录。