我有一个像这样的查询,它返回与给定查询匹配的文本行:
SELECT content
FROM messages
WHERE created_at >= '2021-07-24T20:17:18.141Z'
AND created_at <= '2021-07-31T20:11:20.542Z'
AND content ILIKE '%Search Term%';
现在,如果我只计算行数,它只会返回带有该搜索词的消息数。但是,我想计算搜索词的实例数量,而不是包含搜索词的行数。
我想制作一个存储函数,循环遍历上述函数的结果并计算实例数。但它最终变得异常缓慢。我可以接受它很慢,但是有没有一个解决方案可以运行得稍微快一点或者不需要函数?
最佳答案
试试这个:
SELECT
SUM(
CASE
WHEN content ILIKE '%Search Term%' THEN 1
ELSE 0
END
)
FROM
messages
WHERE
created_at >= '2021-07-24T20:17:18.141Z' AND
created_at <= '2021-07-31T20:11:20.542Z';
关于sql - Postgresql - 计算 ILIKE 查询结果中子字符串实例的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68694439/