2015-01-05 60 views
0

創建一組行我有以下結果表如何從衆多的MySQL

name count 
A 2 
B 1 
C 3 
D 2 

的數字select語句是一個計數操作的結果。我想要的是:

name number 
A 1 
A 2 
B 1 
C 1 
C 2 
C 3 
D 1 
D 2 

結果表應該有從1到計數的數字。 這怎麼可以用SQL(-function)或臨時表或其他方式完成?

+0

有mysql中沒有簡單的方法來記錄單轉換成多個records.you'd已爲此編寫一個存儲過程,或者只是擴大在客戶端的行端代碼。 –

+0

當你說計數操作的結果時,你的意思是另一個查詢返回分組計數?如果是這樣,請顯示該查詢。 –

回答

1

你需要得到一個枚舉的整數列表。如果你的表是足夠大,你可以使用:

select t.name, n.n 
from (select @rn := @rn + 1 as n 
     from t cross join 
      (select @rn := 0) vars 
    ) n join 
    t 
    on n.n <= t.count; 
+0

你能解釋一下嗎,我不是那個SQL大師,無法理解這一點。 「如果桌子夠大」,你的意思是什麼?我已將原始查詢添加到我的問題中。 – BeJotEl

+0

明白了!剛剛從'表'中刪除'表',它在MySQL下工作。 – BeJotEl

+0

@BeJotEl。 。 。我的意思是表中的行數足以滿足所有計數。所以,如果'count'的最大值是50,那麼表中至少有50行。 –