SQLite - удалить строку с самым низким идентификатором - PullRequest
1 голос
/ 30 апреля 2009

Как удалить строку из таблицы с самым низким значением строки? Спасибо.

Ответы [ 3 ]

8 голосов
/ 30 апреля 2009
DELETE FROM
  MyTable
WHERE
  Id = (SELECT MIN(Id) FROM MyTable);
4 голосов
/ 14 февраля 2012

В большинстве подобных случаев rowid является индексированным столбцом. Если это так, то намного более быстрое решение:

DELETE FROM 
  tablename
WHERE
  rowid= (SELECT rowid FROM tablename order by rowid limit 1)

Если rowid НЕ проиндексирован, то:

DELETE FROM 
  tablename
WHERE
  rowid= (SELECT MIN(rowid) FROM tablename)

Я бы все-таки протестировал первый, поскольку он часто будет быстрее, даже если rowid не проиндексирован.

0 голосов
/ 27 января 2011
DELETE FROM 
  tablename
WHERE
  rowid= (SELECT MIN(rowid) FROM tablename)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...