MySQL ВЫБЕРИТЕ 5 самых последних идентификаторов - PullRequest
1 голос
/ 02 марта 2012

Я просто хочу выплюнуть 5 последних созданных строк (идентификаторов), чтобы я мог сравнить их с другой базой данных для вставки и обновления дубликата с помощью php:

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

Ответы [ 4 ]

4 голосов
/ 02 марта 2012

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

SELECT ID, DATE from table ORDER BY ID DESC LIMIT 5
3 голосов
/ 02 марта 2012

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

    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

2 голосов
/ 02 марта 2012

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

SELECT ID, DATE from table ORDER BY ID DESC LIMIT 5
0 голосов
/ 02 марта 2012

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

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

...