我的桌子有两列empid& DEPID。此表没有任何主键。以下是该表的数据。
+-------+-------+
| empid | depid |
+-------+-------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
| 2 | 4 |
+-------+-------+
现在选择我在下面查询的员工的所有部门。
select empid, group_concat(depid separator ':') from emp group by empid;
它给了我预期的输出。
+-------+-----------------------------------+
| empid | group_concat(depid separator ':') |
+-------+-----------------------------------+
| 1 | 1:2:3:4 |
| 2 | 1:2:3:4 |
+-------+-----------------------------------+
现在我想只选择那些大于2的depid。如何使用group_concat?
答案 0 :(得分:14)
尝试如下:
SELECT empid, GROUP_CONCAT(IF(depid > 2, depid, NULL) SEPARATOR ':')
FROM emp
GROUP BY empid;
答案 1 :(得分:2)
select empid, group_concat(depid separator ':')
from emp
where depid > 2
group by empid