2014-02-20 43 views
1

我已經知道怎麼算的話這樣的每一行:如何總結所有字計數的MySQL

SELECT *, 
IF(words <> '', (length(words)-length(replace(words,' ',''))+1), 0) AS words_count 
FROM table 

但現在我需要從所有行SUM所有罪狀。

我該怎麼做?

謝謝大家。

回答

4

如果你想的總和,使用聚合查詢:

SELECT sum(if(words <> '', (length(words)-length(replace(words,' ',''))+1), 0)) AS words_count 
FROM table; 

編輯:

如果沒有行,你可以做到這一點,以避免NULL值:

SELECT coalesce(sum(if(words <> '', (length(words)-length(replace(words,' ',''))+1), 0)), 0) AS words_count 
FROM table; 
+0

謝謝你@Gordon Linoff我已經嘗試過了,但在某些情況下,我甚至沒有注意到價值。現在我知道爲什麼。因爲如果沒有行,它將返回NULL – Pedro