2012-11-23 51 views
0

已列IsDisabled我想用group_concat只排在那里IsDisabled=0如何使用“GROUP_CONCAT”只过滤行从表中的MySQL

目前我使用

select parentid,group_concat(REPLACE(WhatDoYouSell, ',', '')) sales from table_name 
group by parentid 

我想使用GROUP_CONCAT到WhatDoYouSell列如果只有该行的IsDisabled=0

我有

尝试10
select parentid,group_concat(REPLACE(WhatDoYouSell, ',', '')) sales from table_name 
where IsDisabled=0 
group by parentid 

似乎是查询忽略所有的group by parentid records如果IsDisabled =1

回答

0

试试这个rec​​oeds之一:

SELECT parentid,GROUP_CONCAT(REPLACE(WhatDoYouSell, ',', '')) sales 
FROM (SELECT parentid, WhatDoYouSell FROM table_name 
WHERE IsDisabled=0) AS A 
GROUP BY parentid 
+0

没有静止的sme问题:( –

+0

这是不可能的。用执行我的查询后得到的输出样本数据上传您的创建表脚本。 –

3

尝试此查询与内部条件 -

CREATE TABLE table_name(
    parentid INT(11) DEFAULT NULL, 
    WhatDoYouSell INT(11) DEFAULT NULL, 
    IsDisabled INT(11) DEFAULT NULL 
); 
INSERT INTO table_name(parentid, WhatDoYouSell, IsDisabled) VALUES 
(1, 1, 0), 
(1, 2, 1), 
(1, 3, 0), 
(2, 1, 1), 
(2, 2, 1); 

SELECT 
    parentid, 
    GROUP_CONCAT(IF(IsDisabled = 0, WhatDoYouSell, NULL)) sales 
FROM 
    table_name 
GROUP BY 
    parentid; 

+----------+-------+ 
| parentid | sales | 
+----------+-------+ 
|  1 | 1,3 | 
|  2 | NULL | 
+----------+-------+ 
+0

同一问题。:( –

+0

它适用于我。我已经添加了工作示例。请检查。 – Devart

+0

我简化了表格,将WhatDoYouSell字段创建为INT。 – Devart