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

use*_*464 2 mysql sql

假设有一张桌子

id      desc
1        a
1        b
1        c
1        a
2        a
2        a
Run Code Online (Sandbox Code Playgroud)

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

id     desc
1      a/b/c
2      a
Run Code Online (Sandbox Code Playgroud)

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

在此处输入代码

Gor*_*off 5

我想你想group_concat()distinct修改器:

select id, group_concat(distinct `desc` separator '/') as `desc`
from t
group by id;
Run Code Online (Sandbox Code Playgroud)

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