数据表名city,根据字段city分组,取每组的两条数据
select * from(
select *,IF(@tmp_code=city,@tmp_num:=@tmp_num+1,@tmp_num:=0) 'tmp_num',@tmp_code:=city 'tmp_code' from city order by city)
a where a.tmp_num<10
sql解释:@tmp_code:=city表示把city的值临时赋值给@tmp_code,IF(@tmp_code=city,@tmp_num:=@tmp_num+1,@tmp_num:=0)表示如果city的值等于@tmp_code的话,@tmp_num自增1,这样我们就可以通过'tmp_num'这个字段来获取到每一组的前几条数据
结果:
![](https://img-blog.csdnimg.cn/img_convert/8c2ee988f18da20d485fc6683d5d5089.png)