Прыжки выбора значения на 3 независимо от имени идентификатора - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь получить значения, используя запрос SELECT * FROM `table` ORDER BY `cid` ASC LIMIT 3

Но что происходит, так как id, кажется, не заставляет его получать от 5 до 7, от 8 до 9 или от 10 до 12. Я НЕ МОГУИСПОЛЬЗУЙТЕ запрос WHERE `time` = 5 или что-то еще, поскольку значения из cid постоянно меняются.Можно ли это сделать?просто прыгать на поиск значений на 3?

enter image description here

1 Ответ

0 голосов
/ 23 января 2019

LIMIT также имеет опцию смещения: LIMIT offset, count, например:

SELECT * FROM `table` ORDER BY `cid` ASC LIMIT 6, 3

Однако, если кто-то удалит строку с cid = 3 после того, как вы прочитали строки с 1 по 3, выникогда не будет читать строку с cid = 5.

Я бы пошел с настроенной версией вашего исходного запроса, отслеживая самый высокий cid из каждого SELECT, и использовал бы это значение в следующий раз, когда вы выберете еще 3ряды.

SELECT * FROM `table`
WHERE cid > "previous_highest_cid"
ORDER BY `cid` ASC LIMIT 3

Вероятно, будет быстрее, вы не пропустите ни одной строки и т. д.

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