@che_aa

Как получать последние записи sqlite?

Как получать записи в обратном порядке sqlite? Важное уточнение, нету id или похожих параметров сортировки. https://zametkinapolyah.ru/zametki-o-mysql/chast-1... данный гайд не подходит в моем случае.
Есть код:
import sqlite3

db = sqlite3.connect('database.db', check_same_thread = False)
cursor = db.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS test (
	id BIGINT,
	call TEXT
)''')
t = 10
for i in range(10):
	cursor.execute(f"INSERT INTO test VALUES (?, ?)", (i, t-1))
	db.commit()
check = cursor.execute(f'SELECT * FROM test')
search = check.fetchall()
print(search)

Результат работы:
[(0, 10), (1, 9), (2, 8), (3, 7), (4, 6), (5, 5), (6, 4), (7, 3), (8, 2), (9, 1)]

Как можно получить данные в обратном порядке?
  • Вопрос задан
  • 723 просмотра
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Перед print добавить
search.reverse()
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@rPman
sql базы данных, в стандарте, не гарантируют порядок результатов в запросе если не будет указан order by (исключение, group by нужно читать документацию по каждой используемой БД и использованию конкретных индексов).

То что если у тебя в 1000 случаев сработает как ты ожидаешь, в 1001-вом получишь неожиданный результат (ситуаций много, неудачные комбинации добавления и удаления записей, странная комбинация записей в индексе и т.п.)

в sqlite в каждой таблице, если специально не удалять это при создании, есть колонка rowid, являющаяся идентификатором записи, и это положительное число, и оно увеличивается при добавлении (сбрасывается при vacuum), возможно тебе ее хватит, сортируй по ней.
Ответ написан
Комментировать
yupiter7575
@yupiter7575
Python программист
Добавить как нормальные люди Id. А точно...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы