mysql查询count()限制为8

时间:2015-11-03 11:14:21

标签: mysql

是否有限制此查询的结果计数(附加)。在附加的屏幕截图上有十个计数的结果我想知道是否有办法将计数限制或限制为8,无论每个手机号码的结果如何? 谢谢 query count

更新

需要更新我的问题:我需要在此查询中获取最新的每个手机号码8个。见附件:

在结果中;手机号码7824有10条记录。我的目标是获得每个代码的总票数,但每个手机号码限制为8票。

enter image description here

3 个答案:

答案 0 :(得分:1)

而不是:

select x.* from 

做的:

select case when x.count > 8 then 8 else x.count end as count, 
       x.mobile_number, 
       x.code

答案 1 :(得分:1)

使用以下条件:

select if(count(a.id)>8,8,count(a.id)) as count

答案 2 :(得分:1)

不需要按主题查询获得的子查询 -

SELECT IF(COUNT(a.id) > 8, 8, COUNT(a.id)) AS 'count', a.mobile_number, a.shortcode AS 'code'
FROM tbl_votes AS a 
INNER JOIN tbl_members AS b ON b.mobile_number = a.mobile_number 
WHERE a.possition_id = 3 
GROUP BY a.mobile_number;

根据更新的查询更新了答案:

SELECT t.id, t.mobile_number, t.shortcode AS 'code' 
FROM (SELECT t.id, t.mobile_number, t.shortcode,
               CASE 
                 WHEN @category != t.mobile_number THEN @rownum := 1 
                 ELSE @rownum := @rownum + 1 
               END AS rank,
               @category := t.mobile_number AS var_category
          FROM tbl_votes t
          JOIN tbl_members AS b ON b.mobile_number = t.mobile_number 
          JOIN (SELECT @rownum := NULL, @category := '') r     
      ORDER BY t.mobile_number,t.id DESC) X
      WHERE x.rank<=8;