2015-09-04 178 views
1

我的查詢如下:GROUP_CONCAT()削減某些行

select id, value from X where sig_id=1; 

- >取近1000行;

但是當我使用,

select id, 
round(SUBSTRING_INDEX(group_concat(if(sig_id =1, value,0) order by sig_value desc),',',1),2) 
from X; 

- >只獲取1列;

I also get a warning, 

Row 74 was cut by GROUP_CONCAT() 

這怎麼解決?

+0

簡單。不要使用GROUP_CONCAT。以我的想法,在GROUP_CONCAT是解決方案的SQL中幾乎沒有問題 – Strawberry

回答

1

依我之見,在下面的查詢你正在做一個GROUP_CONCAT()沒有任何GROUP BY等分組是在整個結果做作爲一個組。因此,導致只有一個記錄。

select id, 
round(SUBSTRING_INDEX(group_concat(if(sig_id =1, value,0) order by sig_value desc),',',1),2) 
from X; 

你可能真的想使用GROUP BY一些列說id柱獲得多重分組結果。

+0

是的謝謝。我的壞...我錯過了。 – haimen

+0

由於某種原因,我直到現在還不能接受我的答案。現在Jus能夠做到這一點。做到了 :) – haimen