0

编辑:刚刚意识到额外结果的原因是查询中的另一行!不要认为我有足够的代表来结束这个问题。

我正在编辑一些正在搜索 Lotus Notes 数据库的现有 SQL 代码。

我有这条线:

@Contains(Title; "blah blah 1.5")

并且我只想返回那些在标题中完全包含给定字符串的记录。

目前它返回包含“blah blah 1”的所有记录,例如我得到“blah blah 1.1”、“blah blah 1.2”等。

我的猜测是我需要逃避'。但我不知道该怎么做。

4

4 回答 4

2

我认为您只需要测试是否相等,而不是使用全文搜索运算符:

WHERE Title = 'blah blah 1.5'
于 2009-02-16T15:34:19.717 回答
0

我不是 100% 确定,但我认为解决方案是引用你想要的短语;就像是:

@Contains(Title; "'blah blah' AND '1.5'")

至少,这就是我认为你在 MS SQL Server 中想要的(虽然我认为语法是 CONTAINS(Title, '"blah blah" AND "1.5"') )。

于 2009-02-16T15:45:22.127 回答
0

在 Notes/Domino 公式语言中,@Contains 只是进行简单的子字符串比较。如果第二个参数是(或等于)第一个参数的子字符串,则返回 true(1),否则返回 false(0)。在这种情况下,一个简单的相等运算符可能更合适。

Title="blah blah 1.5"
于 2009-02-17T11:26:39.150 回答
0

我假设您的示例实际上是在编辑 Lotus Notes 搜索公式而不是 SQL 查询。CONTAINS 函数的 SQL 格式不使用分号分隔参数,并且函数名称中没有 @ 符号。

按照这个假设,您需要将搜索公式更改为简单的 Title = "blah blah 1.5",并且在您的视图或搜索中,您将获得标题与该确切短语相同的所有文档。

于 2009-02-17T15:12:09.420 回答