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

  • Автор темы Автор темы Ivanov
  • Дата начала Дата начала

Ivanov

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

Каким образом составить запрос, чтобы выбирать каждую N запись удовлетворяющую условиям выборки из таблицы?
 
[sql]
set @i=0;
select @i:=@i+1 as i, id from users where id > 50 having !(i%4) order by id;
[/sql]
 
не понятен смысл выражения HAVING ! ( i % 4 )

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

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

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

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