sql - 使用带连字符的 CONTAINS 谓词的 T-SQL

标签 sql tsql sql-server-2008 contains

想象一个表 (table1) 有一个列 (column1) 和一个值为 'roll-over' 的记录。然后使用以下 SQL 查询,您将不会得到任何记录。

select * from table1 where contains(column1, ' "roll-over" ')

有没有办法在搜索文本中转义连字符?到目前为止,我还没有成功尝试这个(我已经尝试了以下所有转义,但都没有成功)。
select * from table1 where contains(column1, ' "roll\-over" ')
select * from table1 where contains(column1, ' "roll!-over" ')
select * from table1 where contains(column1, ' "roll[-]over" ')

另外,请注意我的应用程序无法使用 LIKE 关键字,因为我正在利用全文搜索索引。

最佳答案

看起来您可能无法做到这一点。请阅读这篇文章:

https://support.microsoft.com/en-us/help/200043/prb-dashes---ignored-in-search-with-sql-full-text-and-msidxs-queries

他们建议只搜索字母数字值(蹩脚)或使用 LIKE 子句(不适合您)。

关于sql - 使用带连字符的 CONTAINS 谓词的 T-SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6930726/

相关文章:

sql - 是否有任何信息可以获取存储过程输入参数的默认值?

mysql - 当我尝试选择 MAX(id) 时,它返回 99

sql-server - 如何计算 SQL 中另一列中每个值的众数

sql - 如何将两个查询的结果合并到一个数据集中

SQL Sum 当天的多个值

sql-server - MS-SQL-Server 上的 INSERT 语句中的 UTF-8 字符发生更改

mysql - 用于搜索 value1 或 value 2 或两者的 SQL 查询,如果两者都不返回全部

php - PostgreSQL 和 PHP 表单

c# - 按邮政编码查找产品 |半正弦算法 |表现

sql - T-SQL - 从特定字符开始的字符串中删除字符