Ответ 1
Я не думаю, что TOP работает в sqlite - нужно использовать LIMIT
DELETE FROM mytable WHERE id NOT IN (
SELECT id FROM mytable
WHERE visited = false
ORDER BY timestamp DESC
LIMIT 10
)
У меня есть таблица со следующими столбцами (URL-адресов):
[id,url,visited,timestamp]
Types:[int,string,int,long]
Я хочу:
Удалите все URL-адреса, за исключением 10 невидимых, которые приостанавливают более высокую отметку времени (или удаляют все, если все посещаются, например)
Возможно ли это сделать в одном запросе? В любом случае, каков наилучший запрос (запросы) для этого?
Заранее спасибо
Я не думаю, что TOP работает в sqlite - нужно использовать LIMIT
DELETE FROM mytable WHERE id NOT IN (
SELECT id FROM mytable
WHERE visited = false
ORDER BY timestamp DESC
LIMIT 10
)
DELETE FROM tableofDeletion
WHERE
-- Delete all items not in the following select
-- ordered by the timestamp so we can get the top 10
id NOT IN (SELECT id
FROM tableofDeletion
WHERE
visited = 0 -- false
ORDER BY timestamp DESC
LIMIT 10)
Я думаю, что это обеспечивает то, что вы ищете.