2017-01-26 44 views
-1

Mysql的,鮮明的反

id Company Name Price 
1 xxx  namea 1 
2 xxx  nameh 1.1 
3 xxx  nameg 2 
4 yyy  namef 1.5 
5 zzz  named 1.7 
6 zzz  names 0.9 

我需要這樣的結果

dCounter Company Name Price 
1   xxx  namea 1 
1   xxx  nameh 1.1 
1   xxx  nameg 2 
2   yyy  namef 1.5 
3   zzz  named 1.7 
3   zzz  names 0.9 

正如你可以看到我們算數公司,它應該分頁正常工作。這意味着如果我們每秒在第二頁上有x2條目,則第二頁上將有dCounter 1和2,第三頁上只有3.

問題在於dCounter,因爲它應該在每個頁面上重新計數。由「ASC公司,名稱ASC,價格ASC」訂購。

我應該如何爲此創建查詢?

回答

0

這將按公司計算排名()。

select 
    @rn := case when @company <> company then @rn + 1 else @rn end as rn, 
    @company := company as cia, 
    Name, 
    Price 
from 
    (select @rn := 0) i, 
    (select @company := company as company, Name, Price 
    from ff order by company) t; 

結果:

+----+-----+-------+-------+ 
| rn | cia | Name | Price | 
+----+-----+-------+-------+ 
| 1 | xxx | namea | 1,00 | 
+----+-----+-------+-------+ 
| 1 | xxx | nameh | 1,10 | 
+----+-----+-------+-------+ 
| 1 | xxx | nameg | 2,00 | 
+----+-----+-------+-------+ 
| 2 | yyy | namef | 1,50 | 
+----+-----+-------+-------+ 
| 3 | zzz | named | 1,70 | 
+----+-----+-------+-------+ 
| 3 | zzz | names | 0,90 | 
+----+-----+-------+-------+ 

可以點擊此處查看:http://rextester.com/ACY4401