Как бы я сделал что-то подобное? Я пытался понять это примерно на час. Очень расстраивает. Любая помощь будет потрясающей!
SQL SELECT row FROM table WHERE id = max (id)
Ответ 1
Вы можете использовать подзапрос:
SELECT row
FROM table
WHERE id=(
SELECT max(id) FROM table
)
Обратите внимание, что если значение max(id)
не уникально, возвращается несколько строк.
Если вам нужна только одна такая строка, используйте ответ @MichaelMior,
SELECT row from table ORDER BY id DESC LIMIT 1
Ответ 2
Вы также можете сделать
SELECT row from table ORDER BY id DESC LIMIT 1;
Это отсортирует строки по их идентификатору в порядке убывания и вернет первую строку. Это то же самое, что и возвращение строки с максимальным идентификатором. Это, конечно, предполагает, что id
является единственным среди всех строк. В противном случае может быть несколько строк с максимальным значением для id
, и вы получите только один.
Ответ 3
Вы не можете дать order by
, потому что order by
выполняет "полное сканирование" в таблице.
Следующий запрос лучше:
SELECT * FROM table WHERE id = (SELECT MAX(id) FROM table);
Ответ 4
SELECT *
FROM table
WHERE id = (SELECT MAX(id) FROM TABLE)
Ответ 5
Попробуйте с этим
SELECT top 1 id, Col2, row_number() over (order by id desc) FROM Table
Ответ 6
вы также можете использовать COUNT (id) вместо MAX (id)
SELECT * FROM table WHERE id = (SELECT count(id) FROM table)