转义SQL查询中的句点字符

时间:2009-02-16 15:28:11

标签: sql lotus-notes escaping

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

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

我有这一行:

@Contains(Title; "blah blah 1.5")

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

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

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

4 个答案:

答案 0 :(得分:2)

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

WHERE Title = 'blah blah 1.5'

答案 1 :(得分:0)

我不是百分百肯定,但我认为解决方案是引用你想要的短语;类似的东西:

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

至少,这就是我认为你想要的MS SQL Server(虽然我认为语法是CONTAINS(标题,'“blah blah”和“1.5”))。

答案 2 :(得分:0)

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

Title="blah blah 1.5"

答案 3 :(得分:0)

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

按照这个假设,您需要将搜索公式更改为Title =“blah blah 1.5”,并且在您的视图或搜索中,您将获得具有该标题的标题的所有文档。