Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在同一表列中使用多个关键字的SQL查询搜索操作_Sql_Sql Server - Fatal编程技术网

在同一表列中使用多个关键字的SQL查询搜索操作

在同一表列中使用多个关键字的SQL查询搜索操作,sql,sql-server,Sql,Sql Server,我有如下查询,其中产品名称是“国家的敌人(电影、蓝光)”,另一个产品名称是“三星Galaxy Note 8 6.3”64 GB Mobile。用户只能搜索“三星”,或者用户可以搜索“三星Note”或者用户可以搜索“三星Note 8“但无论如何,结果都应该带来适当的结果。其他产品也是如此 select * from Product where Contains(name, '"Enemy*" and "Of*" and "The*"') select * from Product where C

我有如下查询,其中产品名称是“国家的敌人(电影、蓝光)”,另一个产品名称是“三星Galaxy Note 8 6.3”64 GB Mobile。用户只能搜索“三星”,或者用户可以搜索“三星Note”或者用户可以搜索“三星Note 8“但无论如何,结果都应该带来适当的结果。其他产品也是如此

select *
from Product
where Contains(name, '"Enemy*" and "Of*" and "The*"')

select *
from Product
where Contains(name, '"samsung*" and "Note*" and "8*"')

我没有得到适当的结果。任何人都可以帮助我。

下面的查询将返回“三星”一词所在产品表中的所有数据

SELECT *
FROM Product
WHERE name LIKE '%samsung%'

为了选择有几个子字符串的数据,可以使用LIKE运算符:

SELECT * FROM Product WHERE name LIKE 'Samsung%Note%8%'
%字符可以被任何字符串替换,因此您可以根据需要调整它。 然而,搜索是基于这些子串的顺序,所以“三星”必须是第一个,“注意”第二个


请注意,如果您的表包含大量数据,则关联查询可能会很慢。

如果要使用全文搜索,则需要了解有关参数的信息,例如最小字长和停止字。您可以查看
%LIKE
命令,以了解您要查找的方向。我可以编写答案,但这取决于您的需要。也许可以为您工作,或者您必须在表中包含上述产品的同一个表中使用或甚至使用what is the query搜索关键字“Samsung Note 8”。
WHERE name LIKE“%Samsung Note 8%”
还有其他选项吗?因为在同一个产品名称不同,然后在刚才的评论。您可以看到产品名称为“三星Galaxy Note 8 6.3”64 GB手机“。在上面类似的查询中找不到结果。您可以单独搜索每个单词/短语
上面的建议在哪里得到了预期的结果,比如说“%samsung%”或者像“%galaxy%”这样的名称或者像“%samsung galaxy%”这样的名称
您得到了预期的结果吗?这种方法是否普遍有用是值得怀疑的,因为它假定顺序是重要的,并且搜索词的来源是合理的,并且不会随机地对这些搜索进行排序条款。谷歌没有做出这样的假设,人们的期望应该是没有其他人会这么做。