编辑:刚刚意识到额外结果的原因是查询中的另一行!不要认为我有足够的代表来结束这个问题。
我正在编辑一些正在搜索 Lotus Notes 数据库的现有 SQL 代码。
我有这条线:
@Contains(Title; "blah blah 1.5")
并且我只想返回那些在标题中完全包含给定字符串的记录。
目前它返回包含“blah blah 1”的所有记录,例如我得到“blah blah 1.1”、“blah blah 1.2”等。
我的猜测是我需要逃避'。但我不知道该怎么做。
编辑:刚刚意识到额外结果的原因是查询中的另一行!不要认为我有足够的代表来结束这个问题。
我正在编辑一些正在搜索 Lotus Notes 数据库的现有 SQL 代码。
我有这条线:
@Contains(Title; "blah blah 1.5")
并且我只想返回那些在标题中完全包含给定字符串的记录。
目前它返回包含“blah blah 1”的所有记录,例如我得到“blah blah 1.1”、“blah blah 1.2”等。
我的猜测是我需要逃避'。但我不知道该怎么做。
我认为您只需要测试是否相等,而不是使用全文搜索运算符:
WHERE Title = 'blah blah 1.5'
我不是 100% 确定,但我认为解决方案是引用你想要的短语;就像是:
@Contains(Title; "'blah blah' AND '1.5'")
至少,这就是我认为你在 MS SQL Server 中想要的(虽然我认为语法是 CONTAINS(Title, '"blah blah" AND "1.5"') )。
在 Notes/Domino 公式语言中,@Contains 只是进行简单的子字符串比较。如果第二个参数是(或等于)第一个参数的子字符串,则返回 true(1),否则返回 false(0)。在这种情况下,一个简单的相等运算符可能更合适。
Title="blah blah 1.5"
我假设您的示例实际上是在编辑 Lotus Notes 搜索公式而不是 SQL 查询。CONTAINS 函数的 SQL 格式不使用分号分隔参数,并且函数名称中没有 @ 符号。
按照这个假设,您需要将搜索公式更改为简单的 Title = "blah blah 1.5",并且在您的视图或搜索中,您将获得标题与该确切短语相同的所有文档。