2012-03-02 6 views
1

Я просто хочу, чтобы выплюнуть 5 последних строк, созданных (ID), чтобы я мог сравнить с другой базой данных для вставки и обновления на дубликате с помощью PHP:MySQL ВЫБРАТЬ 5 последних идентификаторов

SELECT MAX(ID), MAX(DATE) from table ORDER BY ID LIMIT 5 

В случае, если выплюнуть что-то вроде этого:

ID  DATE 
4018 2012-03-01 
4017 2012-03-01 
4016 2012-02-25 
4015 2012-02-15 
4014 2012-02-11 
+0

заказ по идентификатору убыв не работают? –

+0

Он работает, я был в замешательстве, когда использовать DESC, потому что одно из моих полей, которое я назвал DESC! – ToddN

ответ

4

Используйте DESC рода, чтобы получить самые высокие значения первого. Я предполагаю, что ваши идентификаторы создаются пошагово ...

SELECT ID, DATE from table ORDER BY ID DESC LIMIT 5 
+0

wth, я думал, что пробовал это, спасибо, сэр. – ToddN

2

Вы не должны использовать MAX, если вы хотите одну строку, или при использовании GROUP BY. Ваш запрос должен быть просто

SELECT ID, DATE from table ORDER BY ID DESC LIMIT 5 
0

Я не понимаю текущий запрос. Согласно вашему описанию, вы просто хотите заказать свой результат по id desc. Почему вы используете MAX (ID) и MAX (DATE). Я просто помню, что DATE является зарезервированным ключевым словом.

Я думаю, что запрос должен быть SELECT ID, ДАТА FROM table ORDER BY ID DEST LIMIT 5 OFFSET 0

3

Если по каким-либо причинам высших идентификаторы не приходят с более поздней датой, вы можете использовать это, чтобы получить «реальный» сортировать по дате:

SELECT id, date FROM table ORDER BY date_format(date, '%Y%m%d') DESC LIMIT 5; 

Ссылки: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format

+0

Это может оказаться полезным при проведении дальнейших испытаний, спасибо за головы. – ToddN

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