[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как получить последние 20 значений из MySQL
Миша
Проблема в том, что новые сообщения добавляются в конец таблицы.

А на страницу нужно вывести последние 20 добавленных сообщений.

Или велосипед изобретать, получать количество строк - 20 и делать новый запрос?

_____________
Принимаю заказы, писать в ЛС
Игорь_Vasinsky
select * from table order by id DESC limit 20

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Xpund
Цитата (Игорь_Vasinsky @ 26.03.2015 - 07:22)
select * from table order by id DESC limit 20

Это то всё верно, а если у него не ведётся запись по id?

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
Миша
Цитата (Xpund @ 26.03.2015 - 11:37)
Цитата (Игорь_Vasinsky @ 26.03.2015 - 07:22)
select * from table order by id DESC limit 20

Это то всё верно, а если у него не ведётся запись по id?

id то есть, но там ещё запрос с условием

_____________
Принимаю заказы, писать в ЛС
Игорь_Vasinsky
Xpund
шв - это абстрактно. в любой таблице у строк должен быть уникальный идентификатор строки.

Цитата
id то есть, но там ещё запрос с условием

про where не слышал?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
stump
Если вдруг захочется вывести последние 20 от последних 20 и еще 20 от предпоследних 20 которые есть последними 20 за вычетом последних 20, т.е. сделать пагинацию по 20 начиная с конца тогда:
SELECT * FROM table ORDER BY any_field DESC LIMIT $shift,$count;

где
$shift = 0/*первая страница/20 последующие страницы*/; // - сдвиг.
$count = 20 // количество последних записей;


Ну и на всякий случай по 20 сначала:
SELECT * FROM table ORDER BY any_field ASC LIMIT $shift,$count;


_____________
Трус не играет в хокей
bestxp
stumpвообщето сначала идет кол-во записей, потом сдвиг от начала

при постраничной все просто,

$limit = 10;
$page = 1;

получается берем 10 записей после 10 с начала таблицы

SELECT * FROM table ORDER BY any_field ASC LIMIT $limit,$page*$limit;


в твоем случае он будет брать по n записей начиная с 20
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.