如果在mysql中使用group_concat条件

GD_*_*ava 4 mysql

我有一个表有2列empid和depid.此表没有任何主键.以下是该表的数据.

+-------+-------+
| empid | depid |
+-------+-------+
|     1 |     1 |
|     1 |     2 |
|     1 |     3 |
|     1 |     4 |
|     2 |     1 |
|     2 |     2 |
|     2 |     3 |
|     2 |     4 |
+-------+-------+
Run Code Online (Sandbox Code Playgroud)

现在选择我在下面查询的员工的所有depids.

select empid, group_concat(depid separator ':') from emp group by empid;
Run Code Online (Sandbox Code Playgroud)

它给了我预期的输出.

+-------+-----------------------------------+
| empid | group_concat(depid separator ':') |
+-------+-----------------------------------+
|     1 | 1:2:3:4                           |
|     2 | 1:2:3:4                           |
+-------+-----------------------------------+
Run Code Online (Sandbox Code Playgroud)

现在我想只选择那些大于2的depids.如何使用group_concat?

Ank*_*iiG 18

请尝试以下方式:

SELECT empid, GROUP_CONCAT(IF(depid > 2, depid, NULL) SEPARATOR ':') 
FROM emp
GROUP BY empid;
Run Code Online (Sandbox Code Playgroud)

  • 纯代码答案在 StackOverflow(以及整个 Stack Exchange 网络)上的价值很低。请编辑此答案,以解释其工作原理以及为什么它是一个好主意。始终以教育和授权的意图来回答,不仅是 OP,而且是所有未来的研究人员。 (3认同)