Поскольку вы сказали, что используете MySQL, вы можете использовать пользовательские переменные для создания непрерывной нумерации строк. Вы должны поместить это в производную таблицу (подзапрос).
SET @x := 0;
SELECT *
FROM (SELECT (@x:=@x+1) AS x, mt.* FROM mytable mt ORDER BY RAND()) t
WHERE x MOD 5 = 0;
Я добавил ORDER BY RAND()
, чтобы получить псевдослучайную выборку, вместо того, чтобы каждый пятый ряд неупорядоченной таблицы всегда находился в выборке.
Анонимный пользователь пытался отредактировать это, чтобы изменить x MOD 5 = 0
на x MOD 5 = 1
. Я изменил его обратно на мой оригинальный.
Для записи в этом состоянии можно использовать любое значение от 0 до 4, и нет никаких причин предпочитать одно значение другому.