如果在mysql

时间:2015-06-19 18:26:31

标签: mysql

我的桌子有两列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?

2 个答案:

答案 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