MYSQL - 在聚合时指定分隔符(group_by)?

时间:2009-08-11 21:21:33

标签: mysql

我的一些组合值在文本字段中有一个逗号,有没有一种方法可以指定要连接的字符,而不是逗号?

2 个答案:

答案 0 :(得分:1)

mysql documentation中,您可以找到完整的语法

GROUP_CONCAT([DISTINCT] expr [,expr ...]
         [ORDER BY {unsigned_integer | col_name | expr}
             [ASC | DESC] [,col_name ...]]
         [SEPARATOR str_val])

以及GROUP_CONCAT

的以下示例
GROUP_CONCAT(DISTINCT test_score ORDER BY test_score DESC SEPARATOR ' ')

答案 1 :(得分:0)

This页面清楚地解释了这一点。

GROUP_CONCAT()函数用于将列值连接成单个字符串。如果您以其他方式执行多行的查找,然后在客户端连接它们,这将非常有用。

例如,如果您查询:

mysql> SELECT Language FROM CountryLanguage WHERE CountryCode = 'THA';

输出:

Language
Chinese
Khmer
Kuy
Lao

要将值连接成单个字符串,请查询:

mysql> SELECT GROUP_CONCAT(Language) As Languages FROM CountryLanguage WHERE CountryCode = 'THA';

然后输出将是:

Languages
Chinese, Khmer, Kuy, Lao

您还可以使用某种格式的GROUP_CONCAT()。喜欢

  • SELECT GROUP_CONCAT(语言分隔符' - ')...它将使用' - '而不是','
  • SELECT GROUP_CONCAT(语言ORDER BY语言DESC)...更改顺序和缩短输出。

    要记住的事情:

    GROUP_CONCAT()忽略NULL值。