Как выбрать следующую строку нумерации в sql - PullRequest
2 голосов
/ 07 апреля 2020

Извините, я слаб для Энгли sh. я эхо 2 строки на каждой странице. как эхом следующие 2 строки

SELECT *
FROM `mzmx_post`
JOIN mzmx_post_category 
WHERE mzmx_post.id = mzmx_post_category.post_id AND zmx_post_category.category_id = 5
ORDER BY id DESC 
LIMIT 2

Ответы [ 3 ]

3 голосов
/ 07 апреля 2020

Вы можете использовать форму с двумя аргументами от LIMIT до смещение результат на заданное количество строк, например:

SELECT *
FROM `mzmx_post`
JOIN mzmx_post_category ON mzmx_post.id = mzmx_post_category.post_id 
WHERE mzmx_post_category.category_id = 5
ORDER BY id DESC
LIMIT 2, 2      -- fetch records 3 and 4

Это даст вам вторую страницу. Если вам нужна третья страница, то:

LIMIT 4, 2

и т. Д.

Обратите внимание, что я изменил ваш запрос, чтобы условие соединения между таблицами было помещено в предложение ON объединение, а не в предложении WHERE.

0 голосов
/ 07 апреля 2020

Лучше добавить один дополнительный столбец (например, mzmx_post_key bigint) типа Long в каждой таблице и иметь последовательное значение для этого столбца. Используйте этот столбец для извлечения данных из БД со страницы. sqL suery должен выглядеть так:

SELECT *
FROM `mzmx_post`
JOIN mzmx_post_category ON mzmx_post.id = mzmx_post_category.post_id 
WHERE mzmx_post_category.category_id = 5 and mzmx_post_key> ##last record key##
ORDER BY mzmx_post_key ASC
LIMIT 2
0 голосов
/ 07 апреля 2020

Основная идея c заключается в использовании

LIMIT n,o

, где
n - результаты на странице
o - смещение от первого результата

для p-й страницы смещение будет

o = p * n
, где p = 0,1,2, ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...