【发布时间】:2022-01-12 13:48:11
【问题描述】:
【问题讨论】:
-
mark as 1 else 0 在哪里出现?
-
@P.Salmon 对不起,我改了
标签: mysql group-by min group-concat
【问题讨论】:
标签: mysql group-by min group-concat
您所需要的只是聚合函数MIN(),当id 的两个值都存在时,它将返回ACTIVE,因为它被认为小于CANCELLED:
SELECT id, MIN(status) status
FROM tablename
GROUP BY id;
不依赖于这些特定字符串的比较的更通用的解决方案是GROUP_CONCAT():
SELECT id,
SUBSTRING_INDEX(
GROUP_CONCAT(status ORDER BY status = 'ACTIVE' DESC),
',',
1
) status
FROM tablename
GROUP BY id;
请参阅demo。
【讨论】: