2014-02-20 42 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