查询一个商品中分类为 1 2 3 4 5 的商品
分别查询他们的5个条件但是同时限制5条
也就是25条结果
如何用一条sql写出来
例如
good表
id name cateId
1 A 1
2 B 1
3 C 2
4 D 2
5 E 3
6 R 3
7 G 4
8 H 4
9 R 4
10 Y 4
将条件
select * from good where cateId=1 limit 2
select * from good where cateId=2 limit 2
select * from good where cateId=3 limit 2
的结果用一条sql查询出来 不用union
下面是SQL Server的写法
查询5个分类,每个分类最多返回5条
分类4实际多余5条,但查询仅返回五条
id name cateId rn
----------- ---- ----------- --------------------
1 A 1 1
2 B 1 2
3 C 2 1
4 D 2 2
5 E 3 1
6 R 3 2
7 G 4 1
8 H 4 2
9 R 4 3
10 GG 4 4
11 HH 4 5
如果不同分类要返回不同的行,下面是分类1,2,3最多返回2条其他最多返回5条
如果是MYSQL,没有ROW_NUMBER,可以参考下面这样实现ROW_NUMBER()OVER(PARTITION BY