我今天遇到了一个问题。我有一张硬币价值表:
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
它再次给了我一行blob ...有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
。
由于
答案 0 :(得分:2)
您可以将distinct传递给group_concat以忽略重复的值:
SELECT GROUP_CONCAT(DISTINCT Valeur) AS Values FROM Mint_Coins
在这种情况下,您也不需要分组。
如果您希望结果包含多行,您也可以这样做:
SELECT DISTINCT Valeur FROM Mint_Coins
答案 1 :(得分:0)
SELECT GROUP_CONCAT(A.Valuer SEPARATOR ',') AS Valuer
FROM (SELECT DISTINCT Valuer FROM Mint_Coins)A ORDER BY Valuer;
检查这个有价值的链接。这会对你有所帮助。
http://mahmudahsan.wordpress.com/2008/08/27/mysql-the-group_concat-function/
答案 2 :(得分:0)
您可以使用嵌套子查询吗?
SELECT GROUP_CONCAT(',', (SELECT Valeur FROM Mint_Coins GROUP BY Valeur)) AS Values FROM Mint_Coins