Sql server 在Sql server中的Contains()中传递特殊字符

Sql server 在Sql server中的Contains()中传递特殊字符,sql-server,Sql Server,我有表名Product,其中包含所有产品的详细信息。(列:id、名称、价格) 产品名称为“Garmin nüvi 1340T GPS for Europe 4.3”屏幕,信息流量TMC Premium,Micro SD卡“来自链接” 我想在sql server中使用contains()搜索此产品 我有书面询问 select top 10 * from Product where CONTAINS(p.*,N'((((((((((((((FORMSOF (INFLECTIONAL, Garmin)

我有表名Product,其中包含所有产品的详细信息。(列:id、名称、价格)

产品名称为“Garmin nüvi 1340T GPS for Europe 4.3”屏幕,信息流量TMC Premium,Micro SD卡“来自链接”

我想在sql server中使用contains()搜索此产品

我有书面询问

select top 10 * from Product where CONTAINS(p.*,N'((((((((((((((FORMSOF (INFLECTIONAL, Garmin) AND FORMSOF (INFLECTIONAL, nüvi)) AND FORMSOF (INFLECTIONAL, 1340T)) AND FORMSOF (INFLECTIONAL, GPS)) AND FORMSOF (INFLECTIONAL, for)) AND FORMSOF (INFLECTIONAL, Europe))  AND FORMSOF (INFLECTIONAL, 4.3)) AND FORMSOF (INFLECTIONAL, screen)) AND FORMSOF (INFLECTIONAL, Info)) AND FORMSOF (INFLECTIONAL, Traffic)) AND FORMSOF (INFLECTIONAL, TMC)) AND FORMSOF (INFLECTIONAL, Premium)) AND FORMSOF (INFLECTIONAL, Micro)) AND FORMSOF (INFLECTIONAL, SD)) AND FORMSOF (INFLECTIONAL, Card))')
这是零结果

我用“(双引号)和(分号)尝试了查询服务错误

所以删除了这两个特殊字符。所以它不会显示任何结果

如何传递特殊字符或如何使用特殊字符搜索

提前感谢

我建议使用N'((…而不是')(()这样你就可以将它转换为nvarchar而不是varchar

另一件事是检查“for”-for是一个常见的关键字,因此在创建全文索引时被跳过;这个查询(实验性地)适合我

N'((((((((((((((FORMSOF (INFLECTIONAL, Garmin) AND FORMSOF (INFLECTIONAL, nüvi)) AND FORMSOF (INFLECTIONAL, 1340T)) AND FORMSOF (INFLECTIONAL, GPS))) AND FORMSOF (INFLECTIONAL, Europe))  AND FORMSOF (INFLECTIONAL, 4.3)) AND FORMSOF (INFLECTIONAL, screen)) AND FORMSOF (INFLECTIONAL, Info)) AND FORMSOF (INFLECTIONAL, Traffic)) AND FORMSOF (INFLECTIONAL, TMC)) AND FORMSOF (INFLECTIONAL, Premium)) AND FORMSOF (INFLECTIONAL, Micro)) AND FORMSOF (INFLECTIONAL, SD)) AND FORMSOF (INFLECTIONAL, Card))

谢谢你的建议。我添加了那个。但是我的问题仍然没有解决:(.你能帮我解决这个问题吗:)谢谢你的建议和回复。是的,删除“for”后它对我有效“从查询中。谢谢。我们可以传递查询中的常见关键字吗?还有哪些不应该存在于查询中的常见关键字。它被称为停止词-运行此查询-它将为您提供完整的列表选择*来自sys.fulltext\u system\u stopwords,其中language\u id=1033。您也可以在此处阅读更多内容。”