SQL для весенней подкачки веб-сайтов с использованием Maria DB - PullRequest
0 голосов
/ 14 марта 2019

мой веб-сайт был создан Spring Framework.
а также с помощью Mybatis.

на моем веб-сайте есть страница доски объявлений.
а вот и доска стола.

TB_BOARD

seq(pk), user_seq, title, category, content, reg_time

Теперь я хочу применить пейджинг.
поэтому я проверил документ Марии БД.
они сказали использовать рк вместо смещения.
хорошо, я понимаю .. но есть проблема.

если на моей странице доски объявлений есть только кнопки «Предыдущая» и «Следующая», проблем нет.
я напишу свой SQL так:

следующий

select * from TB_BOARD where seq < #{last_seq} order by seq desc limit 5

предыдущие

select * from TB_BOARD where seq >= #{last_seq} order by seq desc limit 5

а если на странице бюллетеня есть номерная кнопка пейджинга? [1] [2] [3] [4] [5]

и кто-то нажал кнопку [4]. Как мне получить записи для кнопки [4]?
На мой взгляд, записи могут быть изменены (обновить, удалить), seq больше не будет последовательным.
поэтому невозможно предсказать.

нет ли способа сделать это без "select @rownum"?
спасибо.

1 Ответ

1 голос
/ 18 марта 2019

Запрос 'previos' требует ASC, а не DESC, если я правильно понимаю seq.

Если вы хотите получить [1][2]... со всеми возможными страницами, вы напрашиваетесь на неприятности,Я предполагаю, что вы перечисляете только следующую и предыдущую, скажем, 5 страниц.То есть, если вы находитесь на странице 13, кнопки покажут 8..18.(Плюс, возможно, [first] и [last].

Вы не должны использовать жестко запрограммированный «порядковый» номер. Вместо этого используйте datetime или другую вещь, которая имеет такой же эффект

Что касается INSERTs и DELETEs, «next» и «previous» можно заставить работать «правильно», но переход на произвольную страницу неоднозначен из-за возможных изменений.

3 страницы заголовка текущей страницы seq < $this ORDER BY seq DESC LIMIT 15,5 (или что-то в этом роде.

Подробнее о нумерации страниц здесь .

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