You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用MySQL关联查询筛选同时包含多个指定关键词的文本?

多关键词筛选文本的MySQL实现方案

不用分开查询后对比ID,直接通过MySQL语句就能实现筛选同时包含至少两个指定关键词的文本数据,下面是两种常用的可行方案:

方案一:GROUP BY + HAVING 统计匹配数

通过分组统计文本匹配到的指定关键词数量,筛选出数量达标的结果:

SELECT t1.id, t1.text
FROM table1 t1
INNER JOIN table2 t2 ON t2.text_id = t1.id
WHERE t2.keyword IN ('XXX', 'YYY') -- 替换成你的目标关键词
GROUP BY t1.id, t1.text
HAVING COUNT(DISTINCT t2.keyword) >= 2;
  • 逻辑说明:WHERE先过滤出所有包含目标关键词的记录,GROUP BY按文本ID和内容分组,COUNT(DISTINCT t2.keyword)统计该文本匹配到的不同指定关键词数量,HAVING只保留数量≥2的分组,确保文本同时包含至少两个目标关键词。

方案二:多EXISTS子查询验证

通过多个EXISTS分别检查文本是否包含每个目标关键词,只有全部满足才返回:

SELECT t1.id, t1.text
FROM table1 t1
WHERE EXISTS (
    SELECT 1 FROM table2 t2 
    WHERE t2.text_id = t1.id AND t2.keyword = 'XXX'
)
AND EXISTS (
    SELECT 1 FROM table2 t2 
    WHERE t2.text_id = t1.id AND t2.keyword = 'YYY'
);
  • 逻辑说明:每个EXISTS子查询独立验证文本是否包含对应关键词,只有当所有子查询都返回存在时,才会选中该文本,适合关键词数量较少的场景。

内容的提问来源于stack exchange,提问作者Felix N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 13:55:21