Группировки в MySQL - PullRequest
       2

Группировки в MySQL

0 голосов
/ 09 ноября 2011

У меня есть таблица, которая содержит следующие значения.

region      state
---------   ----------
region01    state01
region01    state02
region02    state03

На приведенных выше данных я хочу получить все регионы в одну строку, поэтому я использовал GROUP_CONCAT. Но похоже, что мой запрос ниже дублирует region01 и имеет результат

region01;region01;region02

Может ли кто-нибудь помочь мне с тем, как улучшить приведенный ниже запрос, чтобы возвращаемое значение не дублировало те же данные

SELECT GROUP_CONCAT(region SEPARATOR ';') AS region
  FROM table1
 WHERE field1='BUSINESS01';

Ответы [ 2 ]

2 голосов
/ 09 ноября 2011

Добавить DISTINCT.

SELECT GROUP_CONCAT(DISTINCT region SEPARATOR ';') AS region
FROM table1
WHERE field1='BUSINESS01';

Из руководства MySQL :

DISTINCT определяет удаление повторяющихся строк из набора результатов.

1 голос
/ 09 ноября 2011

вы должны использовать этот синтаксис

SELECT GROUP_CONCAT(DISTINCT region SEPARATOR ';') AS region
  FROM table1
 WHERE field1='BUSINESS01';

, он дает вам только уникальные значения поля

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