在MySQL中仅选择偶数/奇数行[重复]
Posted
技术标签:
【中文标题】在MySQL中仅选择偶数/奇数行[重复]【英文标题】:Select only even/odd rows in MySQL [duplicate] 【发布时间】:2014-09-23 11:28:41 【问题描述】:我试图在不使用 ID 字段的情况下从 mysql 的表中选择所有偶数行或奇数行。 我试过这个,但我想它不起作用,因为它基于 SQL Server: how to show only even or odd rows in sql server 2008?
提前谢谢大家。
【问题讨论】:
MySQL 中不存在“偶数”或“奇数”行。表代表无序集。您需要一列来指定行的顺序。 如果你有 id 的顺序,你可以检索 where id % 2==0 [***.com/questions/15578727/… 【参考方案1】:假设你有一列指定表格的顺序,那么你可以使用变量来做你想做的事:
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;
【讨论】:
它有效,谢谢!如果我要求你解释,我问的太多了吗?我不明白“@rn”和“VARS”的含义。vars
是表别名,@rn
是 MySQL 中的变量。您可以在此处阅读有关变量的信息:dev.mysql.com/doc/refman/5.7/en/user-variables.html。
我有一个问题:您使用的是PL/SQL?【参考方案2】:
尝试使用这个:-
SELECT cols
FROM (
SELECT cols, @rowNumber := @rowNumber+ 1 rn
FROM YourTable
JOIN (SELECT @rowNumber:= 0) r
) t
WHERE rn % 2 = 1;
【讨论】:
以上是关于在MySQL中仅选择偶数/奇数行[重复]的主要内容,如果未能解决你的问题,请参考以下文章