Syn23
Новичок
Доброго времени суток.
Столкнулся с задачей, не могу решить, прошу помощи или подсказки в какую сторону копать.Может я не тем способом достижения цели решил воспользоваться.
Дано: Есть таблица с 1000 записей, поля следующие: id, date(дата занесения), name, даты добавления не в хронологическом порядке, т.е. в разнобой.
Нужно: Сделать постраничный вывод записей из БД. Сортировка - по дате добавления, от поздней к ранней, т.е. последнюю добавленную в бд запись размещаем в самом начале на первой странице.
Как: без вытаскивания всей выборки в запросе.
Что пытался сделать: пытался с помощью ROW_NUMBER() задать нумерацию с сортировкой по полю с датой и вытащить например с 1 по 10 запись для вывода на первой странице.
Текст запроса:
SELECT *
FROM
( SELECT ROW_NUMBER() OVER(ORDER BY data) AS num FROM table1
WHERE num BETWEEN 1 for 10
Однако SQL выдает следующую ошибку:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(ORDER BY data) AS num FROM table1 WHERE num BETWEEN 1 for 10' at line 3
РЕШЕНО!! С помощью параметра LIMIT управляем сколько штук и с какого номера новости в выборке мы получим. Очень тривиальный способ оказался)
Столкнулся с задачей, не могу решить, прошу помощи или подсказки в какую сторону копать.Может я не тем способом достижения цели решил воспользоваться.
Дано: Есть таблица с 1000 записей, поля следующие: id, date(дата занесения), name, даты добавления не в хронологическом порядке, т.е. в разнобой.
Нужно: Сделать постраничный вывод записей из БД. Сортировка - по дате добавления, от поздней к ранней, т.е. последнюю добавленную в бд запись размещаем в самом начале на первой странице.
Как: без вытаскивания всей выборки в запросе.
Что пытался сделать: пытался с помощью ROW_NUMBER() задать нумерацию с сортировкой по полю с датой и вытащить например с 1 по 10 запись для вывода на первой странице.
Текст запроса:
SELECT *
FROM
( SELECT ROW_NUMBER() OVER(ORDER BY data) AS num FROM table1
WHERE num BETWEEN 1 for 10
Однако SQL выдает следующую ошибку:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(ORDER BY data) AS num FROM table1 WHERE num BETWEEN 1 for 10' at line 3
РЕШЕНО!! С помощью параметра LIMIT управляем сколько штук и с какого номера новости в выборке мы получим. Очень тривиальный способ оказался)
Последнее редактирование: