在另一个表中搜索整个单词的表,如果找到则从结果中排除
Posted
技术标签:
【中文标题】在另一个表中搜索整个单词的表,如果找到则从结果中排除【英文标题】:Search Table For Whole Word In Another Table, If Found Exclude From Result 【发布时间】:2015-09-22 17:24:09 【问题描述】:使用 MS Access,我将如何使用 SQL 创建一个查询来搜索包含搜索词(1 到 10 个词短语)的表中的关键字或另一个表中的关键字词组,然后排除任何匹配项以生成搜索词列表不匹配?
搜索词表示例数据
树屋设计 纳尔逊树屋主人 连接点 安装挡板 不锈钢钉否定关键词和关键词短语样本数据
签收 附上 使用 钢所需的查询输出
树屋设计 纳尔逊树屋主人 连接点注意:否定关键字包括“sign”和“attach”,但这不应阻止“tree house design”和“attachment point”出现在结果集中。我正在使用 Access 2007。
【问题讨论】:
我不确定你在问什么。search terms
是表格还是您要搜索的内容? negative keywords
与搜索词和输出有何关联?
【参考方案1】:
这是查询
SELECT SearchTerms.Phrase
FROM SearchTerms, Negatives
GROUP BY SearchTerms.Phrase
HAVING (((Max(InStr(" " & [phrase] & " "," " & [exclude] & " ")))=0));
其中 SearchTerms 是搜索词表,Phrase 是搜索词字段,Negatives 是包含要排除的否定词的表,Exclude 是该表中的字段名称。
诀窍是我在短语前后添加了空格,然后查找与要排除的单词和前导/尾随空格的匹配项。这样我就可以只识别匹配整个单词而不是部分单词的短语。
当我设置表格并对其进行测试时工作正常。
【讨论】:
您确定需要前导空格吗? “附加”与“附加活页夹”不匹配 是的 - 您需要两个术语的前导空格,以便“附加”匹配“附加活页夹”。他们需要在搜索词的开头或结尾找到匹配项。 好的,不知道如何在phrase
和exclude
帮助中添加前导和尾随空格应该是相同的结果,exclude
之后只有尾随空格
两者都需要前导空格以避免在搜索词的单词末尾找到否定词的匹配 - 即“设计”和“标志”不匹配跨度>
太棒了唐乔治!您甚至通过将短语添加到查询中来解决短语前后没有空格的问题。不错的工作!我接受了你的回答,因为它 100% 有效,但我的问题确实有另一个问题。 [现在制定要求]以上是关于在另一个表中搜索整个单词的表,如果找到则从结果中排除的主要内容,如果未能解决你的问题,请参考以下文章