2013-05-27 2 views
1

Я пытаюсь выбрать из mysql следующим образом: выберите 3 записи, пропустите следующие 2 и так далее. Возможно ли это с mod,id? Или что было бы самым лучшим способом сделать это?Mysql выберите 3 записи, пропустите следующие две, выберите следующие 3 и т. Д.

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

// Edit: Думать о чем-то вроде select * from table where id mod 4 <> 0 который бы пропустить 4th, любой способ и сделать его пропустить 5-й?

+0

Какова частота этого запроса в вашем приложении? – SparKot

ответ

1
SELECT ... 
    FROM ... 
WHERE MOD(...,5) NOT IN (4,0); 

?

+0

В моем примере таблица содержит 44 записи, используя этот запрос, он выбирает 43, ожидаемый результат - 26. –

+0

Коррекция: если я запустил это в phpmyadmin, это действительно показывает 26 также в том порядке, в котором я нуждаюсь, что на моем сайте показывается 43? –

+0

@MariusProllak 'mod' работает, если' id 'являются последовательными. – SparKot

3

Я предлагаю вам добавить один более колонки, и обновления это на вставке (1,2,3 ...), а затем использовать WHERE положения.

Сделайте вещи более простыми.

И не забудьте добавить индекс на этой колонке

Смежные вопросы