Только смещение SQL - PullRequest
       3

Только смещение SQL

2 голосов
/ 11 августа 2011

Можно ли пропустить X первых строк и выбрать все остальные строки в одном запросе? Вот так:

abc
def
ghi
jkl
mno
========= start selecting all from here =========
pqr
stu
vwx
yz

И он выберет: pqr, stu, vwx, yz

Я пытался сделать это с помощью LIMIT и OFFSET, но проблема в том, что таблица динамическая, и я не знаю, какой LIMIT мне следует поставить (я не знаю, сколько строк в таблице).

1 Ответ

5 голосов
/ 11 августа 2011

Если вам просто нужны последние N строк, попробуйте это:

SELECT field1, field2 FROM table
ORDER BY some_column DESC
LIMIT N;

Это дает вам несколько последних записей на основе порядка some_column.

Вы можете использовать автоинкрементный первичный ключ (надеюсь, что он есть), чтобы установить порядок строк, если больше ничего не может быть использовано.

Если вместо этого вы хотите пропустить первые X строк (которые вы указали в вопросе) и получить все строки до конца, попробуйте следующее:

SELECT field1, field2 FROM table
ORDER BY some_column ASC
LIMIT 18446744073709551615 OFFSET X;

Для этого последнего случая см .: MySQL Offset Infinite Rows

Хотя, если у вас do есть первичный ключ с автоинкрементом, и он соответствует строкам, которые вы хотите выбрать, я рекомендую:

SELECT field1, field2 FROM table
WHERE id > X;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...