2013-03-01 64 views
0

在工作台上打开一个新的会话并尝试运行此查询此查询在第一次执行时返回计数'15' ,第二次执行时返回'4'为什么它如此..Mysql查询给出不同的计数第一次和第二次执行

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; 
+0

什么IST的'选择@num结果之前正常运行;您查询的每个调用之前'? – Lars 2013-03-01 06:21:36

回答

1

的原因是因为你第一次运行的查询你又不能将其设置时0使用SET @num=0,但下一次,因此在第二次运行需要@num=15

做第二次运行SET @num=0

相关问题