SQLite:删除总大小为的最旧行
我在SQLite数据库中有一种存储。我的专栏是:SQLite:删除总大小为的最旧行,sql,sqlite,Sql,Sqlite,我在SQLite数据库中有一种存储。我的专栏是: TABLE blobs id INTEGER PRIMARY KEY AUTOINCREMENT timestamp TIMESTAMP -- Indexed data BLOB size INTEGER -- Size of 'data' BLOB, bytes 我想删除最旧的行,使它们的总大小大于或等于N字节。我该怎么做?什么SQL语句?请注意,在您的回答中,我是SQL新手 编辑: 感谢您的回答,但我不需要找到大于N的最
TABLE blobs
id INTEGER PRIMARY KEY AUTOINCREMENT
timestamp TIMESTAMP -- Indexed
data BLOB
size INTEGER -- Size of 'data' BLOB, bytes
我想删除最旧的行,使它们的总大小大于或等于N字节。我该怎么做?什么SQL语句?请注意,在您的回答中,我是SQL新手
编辑:
感谢您的回答,但我不需要找到大于N的最旧行。我希望删除最旧的行r1、r2等,以便sumsizer1+sizer2+…>N.试试这个
delete from blobs
where size >= N
and timestamp = (select MIN(timestamp) from blobs);
这是你的建议试试这个
delete from blobs
where size >= N
and timestamp = (select MIN(timestamp) from blobs);
这是你的建议试试这个
delete from blobs
where size >= N
and timestamp = (select MIN(timestamp) from blobs);
这是你的建议试试这个
delete from blobs
where size >= N
and timestamp = (select MIN(timestamp) from blobs);
以下是此查询将执行的操作:
DELETE FROM blobs
WHERE ROWID IN (
SELECT ROWID FROM blobs
WHERE (SELECT SUM(size) FROM blobs AS _ WHERE timestamp<=blobs.timestamp) <= N
);
记住用实际数字替换N
使用SELECT*而不是DELETE来检查要删除的记录。此查询将执行以下操作:
DELETE FROM blobs
WHERE ROWID IN (
SELECT ROWID FROM blobs
WHERE (SELECT SUM(size) FROM blobs AS _ WHERE timestamp<=blobs.timestamp) <= N
);
记住用实际数字替换N
使用SELECT*而不是DELETE来检查要删除的记录。此查询将执行以下操作:
DELETE FROM blobs
WHERE ROWID IN (
SELECT ROWID FROM blobs
WHERE (SELECT SUM(size) FROM blobs AS _ WHERE timestamp<=blobs.timestamp) <= N
);
记住用实际数字替换N
使用SELECT*而不是DELETE来检查要删除的记录。此查询将执行以下操作:
DELETE FROM blobs
WHERE ROWID IN (
SELECT ROWID FROM blobs
WHERE (SELECT SUM(size) FROM blobs AS _ WHERE timestamp<=blobs.timestamp) <= N
);
记住用实际数字替换N
使用SELECT*而不是DELETE来检查要删除的记录。IMHO它不正确,因为它说:查找最旧的行,如果其大小大于N->删除它,否则什么都不要做。不是最旧的行,而是行,这些行的总和>=N.IMHO它不正确,因为它说:查找最旧的行,如果其大小大于N->删除它,否则不做任何事情。不是最旧的行,而是行,这些行的总和>=N.IMHO不正确,因为它说:查找最旧的行,如果其大小大于N->删除它,否则不做任何事情。不是最旧的行,而是行,这些行的总和>=N.IMHO不正确,因为它说:找到最旧的行,如果它的大小大于N->删除它,否则什么都不要做。不是最旧的行,而是行,这些行的总和>=N。谢谢!这很好用,但是你能解释一下在SELECT SUMsize FROM blobs中的时间戳是如何工作的吗?在哪里时间戳是的,它工作得很好,我被作为新手的符号弄糊涂了。我必须在没有足够时间热身的情况下做点什么。谢谢!这很好用,但是你能解释一下在SELECT SUMsize FROM blobs中的时间戳是如何工作的吗?在哪里时间戳是的,它工作得很好,我被作为新手的符号弄糊涂了。我必须在没有足够时间热身的情况下做点什么。谢谢!这很好用,但是你能解释一下在SELECT SUMsize FROM blobs中的时间戳是如何工作的吗?在哪里时间戳是的,它工作得很好,我被作为新手的符号弄糊涂了。我必须在没有足够时间热身的情况下做点什么。谢谢!这很好用,但是你能解释一下在SELECT SUMsize FROM blobs中的时间戳是如何工作的吗?在哪里时间戳是的,它工作得很好,我被作为新手的符号弄糊涂了。我必须在没有足够时间热身的情况下做点什么。