2014-03-14 104 views
6

我有MySQL中的表稱爲公司的有限行和各公司都有一個類型說1型,2型3型,MySQL查詢來獲取每種類型

例如:

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 ..

+0

什麼決定你想要得到的每種類型中的哪20種? – fancyPants

+0

我只是想要一個查詢,以獲得總共60個結果的20個每個類型.. – Mohan

+0

您的表格將只包含60個結果!...請簡要說明情況 –

回答

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; 
+0

thanx..buddy..ur da在這個整個星球上最好的人...可以你給我一些很好的鏈接學習MySQL ....以提高我的編碼水平..請。 – Mohan

+2

stackoverflow.com嚴重的,我在這裏學到了最多:) – fancyPants

+0

嘿.. whenevr你會gt一些tym .. cn你告訴我你的邏輯4 dat查詢?我真的lyk dat方式.. bt nvr使用它..所以.. – Mohan