【问题标题】:Count words in column with SQL用 SQL 计算列中的单词
【发布时间】:2012-02-26 00:50:02
【问题描述】:
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 words 。 我如何计算这个查询答案中有多少个单词?在这个例子中应该是 17。 我使用 PHP 和 Doctrine。

【问题讨论】:

  • 如果您从结果集中将数据检索到 PHP,则使用 PHP 的 str_word_count() 函数;如果您想在 MySQL 本身中进行字数统计,请查看此答案 - stackoverflow.com/questions/748276/…
  • 谢谢,请添加新答案:)

标签: php mysql sql doctrine


【解决方案1】:
SELECT SUM( LENGTH(words) - LENGTH(REPLACE(words, ' ', ''))+1)
FROM table

【讨论】:

  • 欢迎来到 Stack Overflow!不要只发布一段代码,请解释为什么这段代码可以解决所提出的问题。没有解释,这不是答案。
  • 此查询似乎做了一些不符合所提供问题数据的假设。例如,遇到的每个空格字符都应该表示一个单词(注意id = 4 所在的行)
【解决方案2】:
SELECT LENGTH(words) - LENGTH(REPLACE(words, ' ', '')) + 1 AS words_count
FROM table_name

【讨论】:

  • 不是一个好的解决方案 - 它仅适用于干净的数据,如果单词之间有多个空格或前导/尾随空格,则会出现太多问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 2022-01-18
  • 2014-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多