mysql“group_concat”,“if”条件位于“where”

时间:2013-06-16 05:36:33

标签: mysql if-statement group-concat

我需要找到一个解决方案,我可以将IF条件与“groupconcat”一起使用

select 
GROUP_CONCAT(
 DISTINCT bug_id) 
 from bugs 
 where sum( 
  IF((timediff(delta_ts,creation_ts) > "00:02:00") && (priority="P1") ,1,0))) 
as bugids

抛出错误。

ERROR 1111(HY000):无效使用群组功能

注意: - 此选择查询用作内部查询。

使用groupcontact和where条件获取结果错误ID的任何解决方案??

2 个答案:

答案 0 :(得分:1)

select GROUP_CONCAT( DISTINCT bug_id) from bugs where 
sum( IF((timediff(delta_ts,creation_ts) > "00:02:00") && (priority="P1") ,1,0))

答案 1 :(得分:0)

得到了答案。

select 
GROUP_CONCAT( 
 DISTINCT bug_id) 
 from bugs 
 where  ( 
 IF(
 (timediff(delta_ts,creation_ts) > "00:02:00") && (priority="P1") 
 && (product_id=237)
 &&(bugs.resolution='FIXED')
 &&(bug_status="RESOLVED")
 &&(bugs.creation_ts >='2013-06-14 09:00:00' 
 and bugs.creation_ts <= '2013-06-16 08:59:59') ,1,0)) ;
+--------------------------------+
| GROUP_CONCAT( DISTINCT bug_id) |
+--------------------------------+
| 3743304                        |
+--------------------------------+
1 row in set, 65535 warnings (5.86 sec)