Ответ 1
Вы можете сделать это с помощью суб-запроса:
SELECT * FROM (
SELECT * FROM table ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC
Это выберет последние 50 строк из table
, а затем закажет их в порядке возрастания.
Я хочу выделить последние 50 строк из базы данных MySQL в столбце с именем id, который является основным ключом. Цель состоит в том, что строки должны сортироваться по id в ASC порядке, поэтому этот запрос не работает
SELECT
*
FROM
`table`
ORDER BY id DESC
LIMIT 50;
Также замечательно, что строки можно манипулировать (удалять), и поэтому следующий запрос не работает либо
SELECT
*
FROM
`table`
WHERE
id > ((SELECT
MAX(id)
FROM
chat) - 50)
ORDER BY id ASC;
Вопрос. Как можно получить последние N строк из базы данных MySQL, которые можно манипулировать и быть в порядке ASC?
Вы можете сделать это с помощью суб-запроса:
SELECT * FROM (
SELECT * FROM table ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC
Это выберет последние 50 строк из table
, а затем закажет их в порядке возрастания.
SELECT * FROM table ORDER BY id DESC,datechat desc LIMIT 50
Если у вас есть поле даты, в котором хранятся дата (и время), по которому был отправлен чат, или какое-либо поле, которое заполняется инкрементно (заказ по DESC) или desinscrementally (заказ по ASC), данные в строке помещают его как второй столбец, на котором должны быть данные.
Что сработало для меня!!!! надеюсь, что это поможет!!!!
SELECT * FROM table ORDER BY id DESC LIMIT 50
сохранить ресурсы, сделать один запрос, нет необходимости делать вложенные запросы
select * from Table ORDER BY id LIMIT 30
Примечания: * id
должен быть уникальным. * Вы можете контролировать количество возвращаемых строк, заменив 30
в запросе