在工作台上打开一个新会话并尝试运行此查询此查询返回计数'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;
答案 0 :(得分:1)
原因是因为您第一次使用SET @num=0
,但下次运行查询时,您再次没有将其设置为0
,因此第二次运行需要@num=15
。< / p>
在第二轮SET @num=0