2012-04-12 79 views
0

今天我遇到了一個問題。我買了硬幣值的表:MySQL GROUP BY與GROUP_CONCAT返回所有行合併?

0.01 
0.01 
0.01 
0.05 
0.10 
0.25 
1.00 
1.00 
2.00 
and so on... 

所以主要的想法是讓所有的值一個時間,0.01%,0.05%等。

所以我做的:

SELECT Valeur FROM Mint_Coins GROUP BY Valeur 

現在它會給我一行的每個值...我想要所有的值在一行所以我用這個:

SELECT GROUP_CONCAT(',', Valeur) AS Values FROM Mint_Coins GROUP BY Valeur 

它給我再7 blob .. 。有斑點它意味着該行超過512個字節......好吧,讓我們來看看,當我轉換,它們含有......結果現在:

0.01, 0.01, 0.01, 0.01 
0.05, 0.05 
etc.. 

所以我做錯了嗎?我想要結果保存在一個colomn和一行像這樣0.01,0.05,0.10,0.25,1.00,2.00

感謝

回答

2

你可以通過不同的,以GROUP_CONCAT忽略重複值:

SELECT GROUP_CONCAT(DISTINCT Valeur) AS Values FROM Mint_Coins 

你也不要在這種情況下,需要組。

如果你想在多行的結果,你也可以這樣做:

SELECT DISTINCT Valeur FROM Mint_Coins 
+0

RES是:BLOB - 340]。讓我試着轉換 – 2012-04-12 18:44:58

+0

是的,這也是我想出的 – 2012-04-12 18:46:45

+0

'SELECT GROUP_CONCAT(DISTINCT CAST(Valeur AS CHAR(4)))from Mint_Coins' 這是工作....我認爲MySQL不喜歡到'group_concat'浮點值... – 2012-04-12 18:48:37

0

你能使用嵌套子查詢?

SELECT GROUP_CONCAT(',', (SELECT Valeur FROM Mint_Coins GROUP BY Valeur)) AS Values FROM Mint_Coins 
+0

#1242 - 子查詢返回多個1行 – 2012-04-12 18:45:31