sqlite, как получить последние n записей без ORDER BY - PullRequest
0 голосов
/ 06 января 2020

Мне нужно взять последние 7 значений столбца, о котором я думал, используя «LIMIT», но я не знаю, работает ли он также в обратном порядке. Возьмите пример, у меня есть эти значения 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; Мне нужно получить 4, 5, 6, 7, 8, 9, 10, учитывая тот факт, что в будущем другие записи будут добавлены после 10. Есть ли решение с «LIMIT» или есть другие решения? Я не могу использовать ORDER BY, потому что значения, которые мне нужно получить, это последние 7 дней значений, и у sqlite нет типа даты, и я не регистрирую дату как миллисекунды, но я делаю в формате даты dd-mm-yyyy, так использовать 'ORDER BY date' не работает. Спасибо

1 Ответ

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

Если вы измените формат дат на YYYY-MM-DD, тогда все будет просто так:

SELECT columnname 
FROM tablename
ORDER BY date DESC
LIMIT 7

Поскольку сейчас используется формат даты, единственное, что вы можете сделать, - это создать правильное формат в предложении ORDER BY с SUBSTR():

SELECT columnname 
FROM tablename
ORDER BY SUBSTR(date, 7) || SUBSTR(date, 4, 2) || SUBSTR(date, 1, 2) DESC
LIMIT 7

Это выражение:

SUBSTR(date, 7) || SUBSTR(date, 4, 2) || SUBSTR(date, 1, 2)

преобразует дату как 05-01-2020 в 20200105 поэтому он сопоставим и может быть использован для сортировки строк.

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