2012-02-03 90 views
1
id | words       | other 
1 | lorem ipsum      | dsf 
2 | Lorem Ipsum is simply dummy text | sads 
3 | simply dummy text    | sdf 
4 | Lorem Ipsum text    | sdfsdf 
5 | simply dummy Lorem    | asddasd 

我做SELECT * FROM单词。 如何计算查询的这个答案中有多少单词?在这个例子中应该是17. 我使用PHP和Doctrine。用SQL列计算单词

+1

如果您检索数据从结果到PHP,然后使用PHP的str_word_count()函数;如果你想在MySQL本身做wordcount,看看这个答案 - http://stackoverflow.com/questions/748276/using-sql-to-determine-word-count-stats-of-a-text-field – 2012-02-03 11:37:09

+0

谢谢,请添加新的答案:) – 2012-02-03 13:00:28

回答

4
SELECT LENGTH(words) - LENGTH(REPLACE(words, ' ', '')) + 1 AS words_count 
FROM table_name 
+1

不是一个好的解决方案 - 它只适用于干净的数据,太多的问题,如果单词之间有多个空格,或前/后空格 – 2012-02-03 11:45:09

0
SELECT SUM(LENGTH(words) - LENGTH(REPLACE(words, ' ', ''))+1) 
FROM table 
+0

欢迎来到堆栈溢出!请不要只发布一段代码,请*解释*为什么这段代码能解决问题。没有解释,这不是一个答案。 – 2012-10-30 20:54:41

+0

此查询似乎做出了一些不符合提供的问题数据的假设。例如遇到的每一个空格字符都应该指出一个单词(注意'id' = 4的行) – 2012-10-30 21:00:02