MySQL GROUP BY 和 GROUP_CONCAT 返回所有行合并?

标签 mysql

今天遇到一个问题。我得到了一张包含硬币值(value)的表格:

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 中的 7 行...拥有 blob 意味着该行超过 512 字节...好吧,让我们看看我何时转换它们包含...结果现在是:

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

那么我做错了什么?我希望结果保持在一行一行中,如下所示 0.01,0.05,0.10,0.25,1.00,2.00

谢谢

最佳答案

您可以将distinct传递给group_concat以忽略重复的值:

SELECT GROUP_CONCAT(DISTINCT Valeur) AS Values FROM Mint_Coins

在这种情况下,您也不需要分组。

如果您想要多行结果,您也可以这样做:

SELECT DISTINCT Valeur FROM Mint_Coins

关于MySQL GROUP BY 和 GROUP_CONCAT 返回所有行合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10129725/

相关文章:

mysql - 通过最大列值选择每个唯一列值限制一行

javascript - 导出并使 MYSQL 数据库中的字符串有效期为 7 天

php - Yii2 - 无法添加外键约束

MYSQL 透视/将行转换为值匹配的列

java - 使用 @PersistenceContext 的 Null EntityManager

java - 百万条记录的增量更新

mysql - mysql中如何统计某个字符串出现的次数

php - 在 PHP 中创建文件下载时捕获 MySQL 错误

php - 如何从 MySQL 获取并组合数据,然后插入到 PHP 数组中

MySQL 按先前声明的别名进行分组,我该如何将其包装起来? ' OR `