MySQL中的分组

时间:2011-11-09 06:45:48

标签: mysql group-by

我有一个包含以下值的表格。

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 个答案:

答案 0 :(得分:2)

添加DISTINCT

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

来自MySQL manual

  

DISTINCT指定从结果集中删除重复的行。

答案 1 :(得分:1)

你必须使用这种语法

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

它只给你唯一的字段值