Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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_Search - Fatal编程技术网

用于在搜索时显示结果的SQL语句

用于在搜索时显示结果的SQL语句,sql,search,Sql,Search,你好 我在搜索时遇到了一个问题,比如说我想找一所大学,比如, 无处大学,如果我搜索大学>强>>无处< /强>,我会得到一些建议,包括无处大学>强>这是好的。如果我搜索确切的措辞,那么我会得到确切的结果,但是如果我搜索没有大学的地方,即没有“of”,那么我什么也得不到 SQL语句示例: SELECT univ_name FROM university WHERE INSTR(univ_name,'--keyword here--') 关于我的sql语句缺少什么,有什么建议吗 提前感谢:)听起来您

你好

我在搜索时遇到了一个问题,比如说我想找一所大学,比如, 无处大学,如果我搜索<强>大学>强>>无处< /强>,我会得到一些建议,包括<强>无处大学>强>这是好的。如果我搜索确切的措辞,那么我会得到确切的结果,但是如果我搜索没有大学的地方,即没有“of”,那么我什么也得不到

SQL语句示例:

SELECT univ_name FROM university WHERE INSTR(univ_name,'--keyword here--')
关于我的sql语句缺少什么,有什么建议吗


提前感谢:)

听起来您需要
like
关键字:

SELECT univ_name FROM university WHERE univ_name LIKE '%University%;

%
是一个通配符运算符,它将返回文本中包含单词
University
的列。这比您想象的要复杂一些

让我们从@searchTerm varchar(最大值)开始

您需要做的是动态构建where子句,方法是在空格上拆分@searchTerm并将其构建为如下所示:

其中大学名称如“%term0%”和大学名称如“%term1%”

有关在sql中拆分字符串的一般策略,请参阅此问题

您将其存储在varchar(max)中,比如@sql

然后设置
@sql=''select*from university'+@sql


最后运行
EXEC(@sql)

您的问题是什么?很抱歉,我现在添加了这个问题..答案可能有助于OP动态地用这个字符替换原始字符串中的任何空格…您的数据是否将其存储为
University
University
?可能会区分大小写。嗯。。我认为它不区分大小写,因为当我尝试只搜索关键字“university”时,无论结果是大写还是小写,它都会正确显示结果。。但当我尝试“无处可上大学”时,却没有结果。。