Как выбрать каждую N запись?

Ivanov

Новичок
Как выбрать каждую N запись?

Каким образом составить запрос, чтобы выбирать каждую N запись удовлетворяющую условиям выборки из таблицы?
 

Gas

может по одной?
[sql]
set @i=0;
select @i:=@i+1 as i, id from users where id > 50 having !(i%4) order by id;
[/sql]
 

Ivanov

Новичок
не понятен смысл выражения HAVING ! ( i % 4 )

я так понял оно значит - убираем группы, которые не равны целому остатку i деленное на 4, т.е. в данном примере в качестве N выступило значение 4?
 

Ivanov

Новичок
для проведения розыгрыша, к примеру, среди пользователей, каждый N зарегистрировавшийся с __ по __ получает некий подарок

спасибо за помощь, Gas
 

phprus

Moderator
Команда форума
kruglov
Не всегда. Лотереи на каждый N-й тоже проводятся. К примеру 1000000-й абонент системы получает что-то. Хотя это LIMIT'ом разруливается.
 

Ivanov

Новичок
Хм, обычно лотереи проводятся по другому принципу...
интересно по какому принципу провести такую? когда нужно выбрать, к примеру, каждого пятого?

Не всегда. Лотереи на каждый N-й тоже проводятся. К примеру 1000000-й абонент системы получает что-то. Хотя это LIMIT'ом разруливается.
Каким образом LIMITом?
 

phprus

Moderator
Команда форума
Ivanov
Если нужно выбрать только одного N-го абонента, то:
ORDER BY ... LIMIT N, 1

Я имел ввиду такие случаи когда нужно выбрать только одну запись с заданным номером, но не много неправильно выразился.
 
Сверху