как выбрать 5 последних строк из моего mysql

Я хотел знать команду sql для извлечения 5 последних строк из моей таблицы? Ниже мой запрос sql. Как я буду делать, чтобы он мог выбрать 5 последних строк строки в строке, не являющейся процессом?

$query = "SELECT lat, lng, DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime FROM markers1 WHERE 1"; 

Related of "как выбрать 5 последних строк из моего mysql"

Вам нужно заказать результаты и установить лимит.

Предполагая, что дата и время вы хотите заказать:

 $query = " SELECT lat, lng, DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime FROM markers1 WHERE 1 ORDER BY datetime DESC LIMIT 5 "; 

EDIT: Чтобы ответить на комментарий OP: «Результат, который я получаю, начинается с строки Row 50 для первого запроса, и это соответствует 49,48,47,46. Возможно ли, что я могу получить этот стартовый ряд frm 46,47,48,49,50 ?»

Вы можете либо сделать это с результатом в PHP, извлекая строки и сохраняя их в массиве, так и реверсив массив. Я не верю, что вы можете эффективно перебирать результирующий ресурс mysql в обратном порядке.

Чтобы сделать это в SQL-запросе, вам нужно создать временную таблицу с исходным запросом:

 $query = " SELECT lat, lng, DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime FROM ( SELECT lat, lng, datetime FROM markers1 WHERE 1 ORDER BY datetime DESC LIMIT 5 ) AS tmp_markers ORDER BY datetime ASC "; и $query = " SELECT lat, lng, DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime FROM ( SELECT lat, lng, datetime FROM markers1 WHERE 1 ORDER BY datetime DESC LIMIT 5 ) AS tmp_markers ORDER BY datetime ASC "; 

Результат первоначального запроса используется в качестве таблицы для поиска в новом запросе, который упорядочивает по дате времени по возрастанию. Я должен был применить DATE_FORMAT к внешнему запросу, потому что нам нужно снова указать поле datetime.

просто добавь:

 ORDER BY datetime DESC LIMIT 5 

Лучший способ сделать это – добавить номер строки, а затем отменить свой запрос на основе этого, поскольку у нас нет никаких гарантий того, что ваше поле datetime увеличивается в хронологическом порядке; и я также предполагаю, что по 5 последним строкам вы имеете в виду последние 5, добавленные в таблицу, а не 5 с самым последним временем.

 SELECT lat , lng , DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime , @rownum:=@rownum+1 `RowNum` FROM markers1 , (SELECT @rownum:=0) `r` WHERE 1 ORDER BY RowNum DESC LIMIT 5 

Просмотрите блог этого чувака для решения, которое я использовал.

Может быть, очень поздний ответ, но это хорошо и просто.

 select * from table_name order id desc limit 5 

Этот запрос вернет набор из последних 5 значений (последние 5 строк), которые вы вставили в свою таблицу

Проверьте мой запрос за последние 5 записей

 SELECT * FROM notices where organizationid = $orgid ORDER BY `notices`.`id` DESC LIMIT 5 

Итак, наиболее важным является ORDER BY notices.id DESC LIMIT 5