2012-11-23 60 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