Можно ли это сделать с помощью LIMIT
? Или можно ли извлечь запись у которой самый большой id
, так как у каждой строки он автоинкемируемый, а значит самая последняя будет иметь самое большое значение в столбце id
?
cur.execute('SELECT * FROM posts LIMIT 0,1')
Делаю так, но это самая первая строка извлекается.
Одна запись с самым большим id:
SELECT * FROM table WHERE ... ORDER BY id DESC LIMIT 1
Если вы хотите получить последний id
, сгенерированный на стороне MySQL сервера при помощи AUTO_INCREMENT
(предположил что данный вопрос - продолжение этого вопроса), то это можно сделать так:
после вставки в таблицу с AUTO_INCREMENT
:
cursor.execute("INSERT INTO ...")
можно использовать атрибут lastrowid
объекта cursor
, чтобы получить последний id
, вставленный данным курсором:
cursor.lastrowid
или метод:
connection.insert_id()
чтобы получить последний id
, вставленный в данном соединении.
PS роследний метод лучше использовать в том случае если приложение использует несколько курсоров для одного соединения.
cur.execute('SELECT * FROM posts ORDER BY id DESC LIMIT 1')
Как здесь уже все указали, нужен ORDER BY и затем LIMIT 1. Добавлю только замечание, что строго говоря наибольший ID может быть не у той записи, которая вам нужна.
Если надо вычислить ID после вставки, то обычно полагаются на cursor.lastrowid.
А если речь о самой свежей записи в календарном смысле, то логично делать сортировку по полю с датой
cur.execute('SELECT * FROM posts ORDER BY posted_at DESC LIMIT 1')
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем добра и мира! Знаете в чем может быть ошибка? Функция editPrompt при вызывании выдает undefined
Делаю валидацию полей в VueПодключен bootstrap-vue, который имеет встроенную кривую валидацию, которая работает не так как нужно, то есть высвечивает...