Выберите последние n строк из MySQL
Я хочу выбрать последние 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 ?
3 ответа:
Вы можете сделать это с подзапросом:
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
если у вас есть поле даты, которое хранит дату(и время), на котором был отправлен чат, или любое поле, которое заполнено инкрементно(order BY DESC) или desinscrementally( order by ASC) данные на строку, поместите его в качестве второго столбца, на котором данные должны быть упорядочены.
вот что сработало для меня!!!! надеюсь, это поможет!!!!