我有一个表MRU,有3列。

(VALUE varchar(255); TYPE varchar(20); DT_ADD datetime)


该表仅存储一个条目并记录其记录的日期时间。我想做的是:每当我添加超过一定数量的新条目时,删除最旧的条目。

这是我的查询:

delete from MRU
where type = 'FILENAME'
ORDER BY DT_ADD limit 1;


错误消息是:
SQL错误:“ ORDER”附近:语法错误...

查询返回错误。

最佳答案

我并不是说您应该这样做,因为它是完全不可携带的,但是如果有迫切的需求,这会起作用:

在SQLite中,除非在其他地方定义了整数主键,否则rowid列始终存在。这可以用于类似:

delete from MRU where rowid = (
    select rowid from MRU order by DT_ADD limit 1
)

10-06 06:35