select * from(
select *,IF(@tmp_code=p_code,@tmp_num:=@tmp_num+1,
@tmp_num:=0) 'tmp_num',@tmp_code:=p_code 'tmp_code'
from product order by p_code
) a
where a.tmp_num<6
sql解释:@tmp_code:=p_code表示把p_code的值临时赋值给@tmp_code,IF(@tmp_code=p_code,@tmp_num:=@tmp_num+1,@tmp_num:=0)表示如果p_code的值等于@tmp_code的话,@tmp_num自增1,这样我们就可以通过’tmp_num’这个字段来获取到每一组的前几条数据
Q.E.D.