2015-06-19 63 views
2

我有表中有2列empid & depid。該表沒有任何主鍵。以下是表格的數據。如果條件與mysql中的group_concat

+-------+-------+ 
| empid | depid | 
+-------+-------+ 
|  1 |  1 | 
|  1 |  2 | 
|  1 |  3 | 
|  1 |  4 | 
|  2 |  1 | 
|  2 |  2 | 
|  2 |  3 | 
|  2 |  4 | 
+-------+-------+ 

現在選擇我在下面查詢的員工的所有depids。

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的depids。如果使用group_concat,我該如何使用?

+1

它不是GROUP_CONCAT的工作進行過濾。只需放在'哪裏depid> 2' –

回答

5

嘗試如下:

select empid, group_concat(if(depid>2,depid,null) separator ':') from emp group by empid;

1
select empid, group_concat(depid separator ':') 
from emp 
where depid > 2 
group by empid