加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

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

发布时间:2021-03-30 22:59:55 所属栏目:编程 来源:网络整理
导读:例如,我有下表: id group data1 1 aaa2 1 aaa3 2 aaa4 2 aaa5 2 aaa6 3 aaa7 3 aaa8 3 aaa 通过“SELECT”命令选择每组的前两个记录的最佳方法是什么? 如果没有好办法,你建议做什么例程?(在PHP中) (模型结果) 1 1 aaa2 1 aaa3 2 aaa4 2 aaa6 3 aaa7 3 aaa

例如,我有下表:

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

通过“SELECT”命令选择每组的前两个记录的最佳方法是什么?
如果没有好办法,你建议做什么例程?(在PHP中)

(模型结果)

1 1 aaa
2 1 aaa
3 2 aaa
4 2 aaa
6 3 aaa
7 3 aaa

我知道在子查询中通过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

> SQLFiddle Demo

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读