是否可以通过最新的行插入desc订购?

时间:2011-02-24 13:44:37

标签: sqlite

让我再解释一下。

我在sqlite中有一个看起来像这样的表:

table
------
id numeric primary key,
uuid text not null,
other_field text

现在id是标准的自动增量类型。此表可以随时添加和删除条目,因此如果再次使用曾经使用过一次的rowid,那就没问题了。我没有使用sqlite的'table full'功能。允许多个条目具有相同的uuid。我的想法是,我只对最后插入的条目感兴趣。

这提出了一个问题。我知道我可以打个电话    “从表中选择other_field,其中uuid =?order by rowid desc”

这没关系,但是如果rowid环绕怎么办?由rowid desc命令不会给我最新的条目。

我能想到的是添加一个像

这样的creation_time字段
table
------
id numeric primary key,
uuid text not null,
other_field text
creation_time datetime

然后在创建时将datetime('now')放在该字段中。

select other_field from table where uuid=? order by creation_time desc

但这意味着添加额外的字段和更大的索引。是否有内置的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

如果要选择最新的ID或RowID,请查看命令LIMIT。使用LIMIT,您只能返回1行。例如:

SELECT * from table ORDER BY id DESC LIMIT 1

使用此解决方案,您无需添加其他字段“ creation_time”。

希望对您有帮助:)