是的,最好的方法是在查询的 WHERE 语句中添加一个部分,通过主题 title 进行过滤。
例如:
WHERE archetype = 'private_message'
AND subtype = 'system_message'
AND created_at BETWEEN :start_date AND :end_date
AND title = 'Greetings!'
这将查找所有 Greetings! 消息。
请注意,一些系统消息不包含真实用户,因此使用此类查询时,可能需要删除 AND user_id > 0 行。
您可能还想删除 AND deleted_at IS NULL,以便仍然计算用户可能删除的欢迎消息。
您可以使用正则表达式来匹配具有相似标题的主题。
要在 PostgreSQL 中使用正则表达式(regex)按标题匹配主题,您可以使用 ~ 运算符,它将正则表达式与字符串进行匹配。查询结构如下所示:
SELECT *
FROM topics
WHERE title ~ 'YourRegexPatternHere'
将 'YourRegexPatternHere' 替换为您要与 title 字段匹配的实际正则表达式模式。
例如,如果您要查找标题包含“Welcome”(不区分大小写)的主题,可以使用:
SELECT *
FROM topics
WHERE title ~* 'Welcome'
~* 运算符用于不区分大小写的匹配。