SQL查询(或函数)查找总数没有。表中特定字符串的出现

时间:2013-02-10 21:06:21

标签: mysql sql oracle phpmyadmin

我有一个大表,其中一列有来自许多用户(数千行)的文本响应。我需要在该响应列中找到一个部分单词的总出现次数。如果我使用

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

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

注意:我更喜欢用户定义的函数,我可以将其添加到数据库并反复使用。

2 个答案:

答案 0 :(得分:0)

SELECT SUM(BINARY (LENGTH(field_name) - LENGTH(REPLACE(field_name, "your_word", "")))/LENGTH("your_word")) FROM table_name;

答案 1 :(得分: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