2015-06-19 2 views
2

У меня есть таблица, которая имеет 2 столбца empid & depid. В этой таблице нет первичного ключа. Ниже приведены данные таблицы.Если условие с group_concat в mysql

+-------+-------+ 
| 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. Как я могу использовать, если с 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 
Смежные вопросы