我有一个大表,其中一列有来自许多用户(数千行)的文本响应。我需要在该响应列中找到一个部分单词的总出现次数。如果我使用
SELECT count(*) from Table where Response like '%wordtobefound%'
它给出了包含'wordtobefound'的行数,但我需要在所有行中出现'wordtobefound'这个词的总出现次数。
注意:我更喜欢用户定义的函数,我可以将其添加到数据库并反复使用。
答案 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