Sql server 在sql server中使用contains()
我有一个表名Sql server 在sql server中使用contains(),sql-server,full-text-search,Sql Server,Full Text Search,我有一个表名Product包含3列,如下所示: Product-id name Price 在name列中,显示所有产品名称 示例:1340 GPS、1340T GPS等 当我写作时 select top 10 * from product where contains(name,'1340'); 结果1行1340 GPS 但当我搜索时 select top 10 * from product where name like '%1340%'; 然后结果是1340 GPS和1340T GP
Product
包含3列,如下所示:
Product-id
name
Price
在name
列中,显示所有产品名称
示例:1340 GPS、1340T GPS等
当我写作时
select top 10 * from product where contains(name,'1340');
结果1行1340 GPS
但当我搜索时
select top 10 * from product where name like '%1340%';
然后结果是1340 GPS和1340T GPS
实际上,我的要求是我将使用contains()
,但它必须像like
操作符一样显示这两行
如何做到这一点:
请帮忙
提前感谢这里有一个简单的方法。在包含与like运算符相同的语法之前,可以使用“*”。但是您需要在搜索字符串前后使用双引号。检查以下查询:
SELECT *
FROM product
WHERE CONTAINS(name,'"*1340*"');
这肯定会奏效的 选择*from product where FREETEXT(product.,““1340”)你为什么坚持使用
contains()
?我需要全文搜索是否有任何方法可以解决上述问题或其不可能?我正在使用上述查询搜索产品。如果我使用like运算符,它将花费比contains()更多的时间,而且我需要全文搜索。因此,我需要contains()作为我的观点。我在查询中使用了内部联接和其他联接的数量。有没有其他方法可以解决这个问题呢?我们不需要在全文搜索中使用*。只需注意:你不能用Contains做前缀*。它只在本例中起作用,因为1340是单词的开头。例如,如果它是T1340,这将不起作用