2013-07-08 3 views
2

Просто интересно, есть ли простой запрос, который я мог бы использовать для получения второй последней записи при выборе max id.выберите max id минус один (второй идентификатор последней строки)

SELECT MAX(`EventID`) FROM `event`; 

Спасибо

+0

Что вы хотите сделать? Просто получить последнюю запись в базе данных? – Neal

+0

Возможный дубликат [Выбрать последнюю строку в MySQL] (http://stackoverflow.com/questions/4073923/select-last-row-in-mysql) – Neal

ответ

-1

Я на самом деле удалось выяснить это

SELECT MAX(`EventID`) FROM `event` WHERE `EventID` = (SELECT MAX(`EventID`) -1 FROM `event`); 
+1

Пока вы не перейдете к последовательности с '4, 5, 6', но '5' был удален. –

7

Вы можете использовать: EDIT: (добавлено предложение Билла, который лучше)

SELECT (`EventID`) FROM 'event' ORDER BY 'EventID' DESC LIMIT 1 OFFSET 1 

ИЛИ :

SELECT `EventID` FROM (SELECT (`EventID`) FROM 'event' ORDER BY 'EventID' DESC LIMIT 2) ORDER BY 'EventID' ASC LIMIT 1 

Это решение является более общим, а также будет работать, если столбец EventID имеет пробелы

+1

+1, но вы можете сделать это без подзапроса, используя LIMIT с OFFSET. –

+0

тот, у кого смещение - хорошая идея :) второй может вернуть последний eventID, а не последнюю секунду, если в таблице только одна строка (потому что LIMIT 2 вернет только одну строку в этом случае) – fthiella

3
SELECT MAX(EventID) 
FROM event 
WHERE EventID<(SELECT MAX(EventID) FROM event) 
0

я сделал что-то похожее на это

$ query_anakuklwsh = "SELECT * FROM anakuklwsh WHERE ID =". $ row_anakuklwsh ['id']. "-1";

Смежные вопросы