Tay*_*ese 75
SELECT *
FROM (
SELECT
@row := @row +1 AS rownum, [column name]
FROM (
SELECT @row :=0) r, [table name]
) ranked
WHERE rownum % [n] = 1
Run Code Online (Sandbox Code Playgroud)
Owe*_*wen 52
您可以尝试使用mod 5来获取ID为5的倍数的行.(假设您有某种ID列是连续的.)
select * from table where table.id mod 5 = 0;
Run Code Online (Sandbox Code Playgroud)
Bil*_*win 22
由于您说您正在使用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;
Run Code Online (Sandbox Code Playgroud)
我添加ORDER BY RAND()了一个伪随机采样,而不是每次都允许无序表的每第五行都在样本中.
匿名用户尝试编辑此更改x MOD 5 = 0为x MOD 5 = 1.我把它改回原来的.
对于记录,可以在该条件下使用0到4之间的任何值,并且没有理由偏好一个值而不是另一个值.
| 归档时间: |
|
| 查看次数: |
47244 次 |
| 最近记录: |