我有一个包含以下值的表格。
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';
答案 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';
它只给你唯一的字段值