SQLite - 删除id最低的行

Ily*_*ski 1 sqlite

如何从具有最低rowid的表中删除行?谢谢.

Tom*_*lak 8

DELETE FROM
  MyTable
WHERE
  Id = (SELECT MIN(Id) FROM MyTable);
Run Code Online (Sandbox Code Playgroud)


Phi*_*per 5

在大多数情况下,rowid 是一个索引列。如果是这种情况,更快的解决方案是:

DELETE FROM 
  tablename
WHERE
  rowid= (SELECT rowid FROM tablename order by rowid limit 1)
Run Code Online (Sandbox Code Playgroud)

如果 rowid 没有索引,则:

DELETE FROM 
  tablename
WHERE
  rowid= (SELECT MIN(rowid) FROM tablename)
Run Code Online (Sandbox Code Playgroud)

我仍然会测试第一个,因为它通常会更快,即使 rowid 没有索引。