MYSQL如何在LIMIT中选择始终偶数行?

时间:2013-11-05 12:02:05

标签: mysql

我有一个要求,我需要选择不同的雇主id与活动作业,但困难的是我必须限制查询总是返回偶数行。

例如

如果有活跃工作的独立雇主是10,那么它可以返回10,这甚至没有问题,但如果有活跃工作的雇主数量是9,那么应该将其限制为8。

注意:此要求是确保页面具有偶数行将使显示中的页面平衡。其次,我知道我可以在编码上做到这一点,但我正在寻找更多基于MySQL查询的解决方案,如果可能的话,因为结果缓存在memcached中,它使得在编码级别执行此操作的事情变得复杂。

1 个答案:

答案 0 :(得分:3)

如果计数是奇数,目前尚不清楚你想对最后一条记录做什么。 另外我认为你应该在客户端这样做。 例如,您的表A包含字段val。您需要偶数个val

SQLFiddle demo

select val 
from
(
select val,
   @rn:=@rn+1 rownum
from (select distinct val from A) A1,
     (select @rn:=0) t1
order by val
) T2
where rownum<=
     ((select count(distinct val) from A) div 2)*2