如何使用一个sql检查多个记录中的列值是否相同

时间:2016-09-08 02:20:02

标签: mysql sql

假设有一个表

id      desc
1        a
1        b
1        c
1        a
2        a
2        a

我想要做的是显示desc的混合,如果相同id下的desc不同,则另外显示desc的值。就像下面一样

id     desc
1      a/b/c
2      a

我怎么能在一个sql中做到这一点?

在这里输入代码

1 个答案:

答案 0 :(得分:5)

我认为您希望group_concat()使用distinct修饰符:

select id, group_concat(distinct `desc` separator '/') as `desc`
from t
group by id;

请注意,desc是列的错误名称,因为它是SQL关键字(想想order by)。选择名称时最好避免使用语法元素。