0

我有一张大桌子,其中一列有来自许多用户(数千行)的文本回复。我需要在该响应列中找到特定单词的出现总数。如果我使用

SELECT count(*) from Table where Response like '%wordtobefound%'

它给出了包含“wordtobefound”的行数,但我需要在所有行中出现“wordtobefound”这个词的总数。

注意:我更喜欢用户定义的函数,我可以将它添加到数据库并一次又一次地使用。

4

2 回答 2

0
SELECT SUM(BINARY (LENGTH(field_name) - LENGTH(REPLACE(field_name, "your_word", "")))/LENGTH("your_word")) FROM table_name;
于 2013-02-10T21:14:51.360 回答
0

尝试这个 :

SELECT
    CAST((LENGTH(Response) - LENGTH(REPLACE(Response, 'wordtobefound', ""))) / LENGTH('wordtobefound') AS UNSIGNED) AS wordCount
FROM Table

您可以使用 SUM 作为总数:

SELECT
    SUM(CAST((LENGTH(Response) - LENGTH(REPLACE(Response, 'wordtobefound', ""))) / LENGTH('wordtobefound') AS UNSIGNED)) AS wordCount
FROM Table
于 2013-02-10T21:17:11.217 回答