Как выбрать 5 последних записей в таблице из базы данных SQLite - PullRequest
0 голосов
/ 22 января 2020

Я хочу выбрать 5 самых последних записей в таблице SQLite.

Для других вариантов SQL вы можете сделать

SELECT * 
FROM tablename
WHERE rowid NOT IN (
    SELECT TOP (
        (SELECT COUNT(*) FROM tablename) - 5
    ) rowid
    FROM tablename
)

Но функция TOP не делает в SQLite не существует, поэтому вы должны использовать LIMIT, но я не могу заставить его работать. Может кто-нибудь показать мне, как это делается, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 22 января 2020

SQLITE:

SELECT * 
FROM your_table 
LIMIT 5;

Вот ДЕМО

В зависимости от того, что вы думаете, когда говорите последние 5, вы можете добавить

ORDER BY your_column DESC

или

ORDER BY your_column ASC

между FROM предложением и LIMIT ключевым словом.

Но, как я вижу, в вашем запросе используется немного другая логика c и выберите все, что не входит в топ-5, поэтому я смоделировал это в SQLite следующим образом:

SELECT * 
FROM your_table 
where id not in 
(select id from your_table
LIMIT (SELECT COUNT(*) - 5 FROM your_table));

Вот демонстрационный пример для этого ПРИМЕРА.

0 голосов
/ 22 января 2020

Если вам нужны строки с верхними 5 rowid с, вы можете сделать это с помощью ORDER BY предложения и LIMIT:

SELECT * 
FROM tablename
ORDER BY rowid DESC
LIMIT 5

, но правильным способом определить последний можно с помощью столбца, подобного created_date.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...