您的位置:首页 > 数据库 > MySQL

MySQL的一个一条SQL语句查询所有不同种类产品的一部分结果实例的SQL语句

2009-08-24 11:29 761 查看
MySQL的一个一条SQL语句查询所有不同种类产品的一部分结果实例的SQL语句

for&ever 2009-08-24

考虑如下场景:
有一个产品表(product),里面有很多产品记录。表格有一个产品类型的字段 prodType,用来标示不同的产品类型。产品类型的种类是一定的,例如,总共有10种不同的产品类型。

要求:
通过一条SQL 语句,按着产品的ID进行排序,分别查询出这10种不同类型的产品的最新的5个。

例如,如下的表的记录:
1 prodTypeA
2 prodTypeB
3 prodTypeA
4 prodTypeA
5 prodTypeA
6 prodTypeB
7 prodTypeA
8 prodTypeA
9 prodTypeA

那么就需要通过一条SQL 语句,查询出如下的结果集:

9 prodTypeA
8 prodTypeA
7 prodTypeA
5 prodTypeA
4 prodTypeA
6 prodTypeB
2 prodTypeB

今天和 xinxinran 讨论后,得到结果如下:::

可以通过如下的SQL查询得到:
SELECT id , prodType FROM product a WHERE ( SELECT count( 1 ) FROM product b WHERE a.prodType = b.prodType AND b.id >= a.id ) <=5

那么,如果要获取最老的5条记录呢?
很简单,修改 b.id >= a.id 为 b.id <= a.id 即可,如下:
SELECT id , prodType FROM product a WHERE ( SELECT count( 1 ) FROM product b WHERE a.prodType = b.prodType AND b.id <= a.id ) <=5

@forandever for&ever 2009-08-24
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: