Mysql Query提供不同的计数第一次和第二次执行

时间:2013-03-01 06:01:02

标签: mysql

在工作台上打开一个新会话并尝试运行此查询此查询返回计数'15' 在第一次执行和'4'ata它的第二次执行为什么会这样..

select count(id) 
from (
   select *,@num := if(@company_id = company_id, @num + 1, 1) as row_number,@company_id := company_id as dummy 
   from salebuild_ctl.company_contact 
   where id in (12352,59898,59899,59900,59901,59902,59903,59904,14047,15196,15197,41402,41403,41404,41405)  
   order by company_id,  date_created asc  
) as x 
where x.row_number <= 2; 

1 个答案:

答案 0 :(得分:1)

原因是因为您第一次使用SET @num=0,但下次运行查询时,您再次没有将其设置为0,因此第二次运行需要@num=15。< / p>

在第二轮SET @num=0

之前正确运行