在sql server中使用contains()

use*_*138 9 sql-server full-text-search

我有一个Product包含3列的表名:

Product-id
name
Price
Run Code Online (Sandbox Code Playgroud)

name列中,显示所有产品名称.

示例:1340 GPS,1340T GPS等

当我写作

select top 10 * from product where contains(name,'1340');
Run Code Online (Sandbox Code Playgroud)

结果1行 1340 GPS

但是当我搜索

select top 10 * from product where name like '%1340%';
Run Code Online (Sandbox Code Playgroud)

然后结果是1340 GPS and 1340T GPS.

实际上我的要求是我将使用,contains()但它必须显示像LIKE运算符这样的行.

怎么做:?

请帮忙

提前致谢

Hir*_*duk 12

这是直截了当的方式.你可以在包含语法之前使用"*"和like运算符一样.但是你需要在搜索字符串之前和之后使用双引号.检查以下查询:

SELECT *
FROM product
WHERE CONTAINS(name,'"*1340*"');
Run Code Online (Sandbox Code Playgroud)

它肯定会奏效.

  • 请注意:您不能使用包含*的前缀*.它仅适用于此示例,因为1340是单词的开头.例如,如果它是T1340,这将无法正常工作. (2认同)