Я хочу выбрать последние 50 строк из базы данных MySQL в столбце с именем 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?
Если у вас есть поле даты, в котором хранится дата (и время) отправки чата, или любое поле, которое заполняется инкрементально (в порядке DESC) или десинкрементально (в порядке ASC) данными для каждой строки, поместите его как второй столбец в какие данные должны быть в порядке.
Вот что у меня сработало !!!! надеюсь, это поможет !!!!
источник
экономия ресурсов сделать один запрос, нет необходимости делать вложенные запросы
источник
LIMIT
идущие по убывающему идентификатору), а конечный результат будет иметь возрастающие идентификаторы.Примечания: *
id
должно быть уникальным. * Вы можете контролировать количество возвращаемых строк, заменив30
в запросеисточник