MYSQL - указать символ-разделитель при агрегировании (group_by)? - PullRequest
0 голосов
/ 12 августа 2009

Некоторые из моих объединенных значений имеют запятую в текстовом поле, есть ли способ, которым я могу указать символ для объединения вместо запятой?

Ответы [ 2 ]

1 голос
/ 12 августа 2009

В документации mysql вы можете найти полный синтаксис

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 ' ')
0 голосов
/ 12 августа 2009

Эта страница объясняет это ясно.

Функция 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 (Language ORDER BY Language DESC)… Для изменения порядка и короткого вывода.

    что нужно запомнить:

    GROUP_CONCAT () игнорирует значения NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...