3

我有一个要求,我需要选择具有活动工作的不同雇主 ID,但困难的部分是我必须限制查询始终返回偶数行。

例如

如果具有活跃工作的不同雇主为 10,则它可以返回 10,即使这样也没有问题,但如果具有活跃工作的雇主数量为 9,则应将其限制为 8。

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

4

1 回答 1

3

如果 count 是奇数,不清楚你想对最后一条记录做什么。另外,我认为您应该在客户端执行此操作。例如,您有A带有字段的表val。您需要偶数个 distinct val

SQLFiddle 演示

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
于 2013-11-05T12:20:16.160 回答