mysql 根据id与条件 将多条数据合并为一条

118 阅读1分钟
idstate
12
11
22
32

现有一个需求,根据id分组,只要存在一条数据state = 1,那该id对应的state最终便是1。上表最后要达到的效果如下:

idstate
11
22
32

其中比较关键的是使用GROUP_CONCAT函数。

case when GROUP_CONCAT(temp.state) like '%1%' then 1 else 2 end state

这个函数将两条数据以逗号的形式合并到一条数据,然后根据使用case when函数进行like捕获。最终得出上述结果。 ps:如果有其他实现方式,还请不吝赐教。