Mysql查询获取每种类型的有限行

时间:2014-03-14 08:15:48

标签: mysql codeigniter

我在MYSql中有一个叫做公司的表,每个公司都有一个类型说类型1,类型2类型3,

示例:

id   company_name   company_type
===============================
1    test1          3
2    xyz            2
3    ashdasdjk      2 
4    test 4         1 
5    test           3 
6    ahsdkjsg       1
7    TCS            2
and so on ...

现在我想编写一个查询来获取结果,这样我就可以获得20个类型1的公司,20个类型为2的公司和20个类型为3的公司...我的意思是我想要获取每种类型的最多20家公司

我正在使用Codeigniter ..

1 个答案:

答案 0 :(得分:3)

select * from (
    select
    c.*,
    @rn := if(company_type != @ct, 1, @rn + 1) as rownumber,
    @ct := company_type
    from
    companies c
    , (select @rn := 0, @ct := null) var_init
    order by
    company_type
) comp
where rownumber <= 20;