在mysql中计算视图中的单词数
我有下面的表结构在mysql中计算视图中的单词数,mysql,view,Mysql,View,我有下面的表结构 +-----------------+-------------+ | myID | text | +-----------------+-------------+ | 3 | some text | | 3 | other text | | 5 | text | +-----------------+-------------+ my
+-----------------+-------------+
| myID | text |
+-----------------+-------------+
| 3 | some text |
| 3 | other text |
| 5 | text |
+-----------------+-------------+
myID不是唯一的ID。它可以重复。文本是任意字符串。
我希望创建一个视图,返回myID行文本中的字数
+-----------------+-------------+
| myID | count |
+-----------------+-------------+
| 3 | 4 |
| 5 | 1 |
+-----------------+-------------+
好吧,我开始(我是mySQL的新手)并做了以下工作
SELECT
myid,
pagetext
FROM table
GROUP by myid
这只是分组。我认为接下来的步骤是
您知道如何开始吗?您可以通过以下查询找到一列中的字数(如果您可以假设字数之间有1个空格):
SELECT
myId,
SUM(LENGTH(text)-LENGTH(REPLACE(text, ' ', ''))+1)
FROM table
GROUP BY myId
来源:首先尝试定义“单词的组成成分?”这几乎不像听起来那么简单,除非数据存储时总是用一个空格分隔单词,而没有标点符号。此外,每个ID的总单词数或唯一单词数是多少?只是用空格分隔的字符。它计算了所有的单词,不知道你为什么感到困惑。这个例子实际上说明了这一点,我假设这个例子没有包括所有可能的输入组合。这些单词没有单独存储在另一个表中的任何原因。这会让你的生活更轻松。我无法控制数据库的结构……除了你从源代码中漏掉了一个“name”实例;它应该是:
SUM(LENGTH(text)-LENGTH(REPLACE(text),“,”)+1)
限制呢?这是非常需要的。我怎么才能加上呢?我不知道你的意思,25行。我可以建议你再问一个问题吗?是的,只有25行对应的“myId”ID。