php – 通过“SELECT”命令选择每组的前两个记录的最佳方法是什么?

前端之家收集整理的这篇文章主要介绍了php – 通过“SELECT”命令选择每组的前两个记录的最佳方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_1@例如,我有下表:

@H_403_1@

id group data
1 1 aaa
2 1 aaa
3 2 aaa
4 2 aaa
5 2 aaa
6 3 aaa
7 3 aaa
8 3 aaa
@H_403_1@通过“SELECT”命令选择每组的前两个记录的最佳方法是什么?
如果没有好办法,你建议做什么例程?(在PHP中)

@H_403_1@(模型结果)

@H_403_1@

1 1 aaa
2 1 aaa
3 2 aaa
4 2 aaa
6 3 aaa
7 3 aaa
@H_403_1@我知道在子查询中通过a.id> = b.id进行交叉连接可以正常工作,但我正在寻找一种可扩展的解决方案,可以应用于具有数百万条记录的表.谢谢
最佳答案
select a.*
from Tablename a
where 
(
   select count(*) 
   from Tablename as b
   where a.group = b.group and a.id >= b.id
) <= 2
@H_403_1@> SQLFiddle Demo

猜你在找的MySQL相关文章