在MySQL中只选择偶数/奇数行

时间:2014-09-23 11:28:42

标签: mysql sql select

我试图在不使用ID字段的情况下从MySQL中的表中选择所有偶数行或奇数行。 我试过这个,但我认为它不起作用,因为它基于SQL Server: how to show only even or odd rows in sql server 2008?

提前谢谢大家。

2 个答案:

答案 0 :(得分:7)

假设您有一个指定表的顺序的列,那么您可以使用变量来执行您想要的操作:

select t.*
from (select t.*, (@rn := @rn + 1) as seqnum
      from table t cross join
           (select @rn := 0) vars
      order by col
     ) t
where mod(seqnum, 2) = 0;

答案 1 :(得分:4)

尝试使用它: -

SELECT cols
FROM (
      SELECT cols, @rowNumber := @rowNumber+ 1 rn
      FROM YourTable
      JOIN (SELECT @rowNumber:= 0) r
     ) t 
WHERE rn % 2 = 1;