sqlite удалить количество строк - PullRequest
0 голосов
/ 09 октября 2011

Мне нужно написать запрос SQLlite, который удалит строки из таблицы выше 200. Я думал, что это будет работать:

DELETE FROM [tbl_names] WHERE count(*) > 200

, но это дает мне: неправильное использование агрегатной функции count ()

Я знаю, что есть предельное предложение, которое я могу использовать, но если я использую:

DELETE FROM [tbl_names] LIMIT 200

, похоже, удалит первые 200 строк.

1 Ответ

2 голосов
/ 09 октября 2011

Все строки в SQLite имеют поле rowid, которое можно использовать для нахождения строк больше 200. Например:

DELETE FROM [tbl_names] WHERE rowid > 200

Вы также можете использовать смещение со своим пределом:

DELETE FROM [tbl_names] LIMIT 10000 offset 200

Использование ROCID, кажется, лучший выбор.

...