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