繁体   English   中英

在表中搜索整个单词,如果找到则排除结果中的整个单词

[英]Search Table For Whole Word In Another Table, If Found Exclude From Result

使用MS Access,我将如何使用SQL创建查询来搜索包含搜索词(1到10个单词短语)的表中的另一个表中的关键字或关键词短语,然后排除任何匹配项以生成不匹配的搜索词列表?

搜索词表样本数据

  • 树屋设计
  • 纳尔逊树屋大师
  • 附着点
  • 附加盲目者
  • 不锈钢钉

否定关键字和关键字短语示例数据

  • 标志
  • 连接
  • 采用

所需查询输出

  • 树屋设计
  • 纳尔逊树屋大师
  • 附着点

注意:否定关键字包括'sign'和'attach',但这不应阻止'tree house design'和'attachment point'在结果集中显示。 我正在使用Access 2007。

这是查询

SELECT SearchTerms.Phrase
FROM SearchTerms, Negatives
GROUP BY SearchTerms.Phrase
HAVING (((Max(InStr(" " & [phrase] & " "," " & [exclude] & " ")))=0));

其中SearchTerms是搜索词的表,而Phrase是搜索词的字段,Negatives是要排除的负词的表,Exclude是该表中的字段名。

诀窍是,我在词组的前后添加空格,然后寻找与要排除的词和前导/尾随空格的匹配项。 这样,我只能识别与整个单词匹配的短语,而不能识别单词的一部分。

当我设置表格并对其进行测试时,工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM