SQL中如果进行模糊查询整个表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中如果进行模糊查询整个表相关的知识,希望对你有一定的参考价值。

我想做关键字搜索 搜索的关键字 不是针对某个字段而是真对正个表的所有字段
如果你说对每个字段都进行like就不用回答了 如果是1000个字段呢那我不是要写死

参考技术A 楼上的等于没说
create proc 名
@表名 varchar(100),
@参数 varchar(100)
as
declare @a varchar(8000)
set @a=''
select @a=@a+' and '+name+' like ''%'+@参数+'%''' from syscolumns where id=object_id(@表名)
set @a=right(@a,len(@a)-4)
exec('select * from '+@表名+' where '+@a)
go
参考技术B 什么地方会要求对针对整张表的所有字段查询?没那个必要,而且效率极低.如果你是要找某张表的话可以到master数据库的sysobjects表中查到. 参考技术C 怎么不会用到 你难道你没用过关键字搜索吗 全文搜索
就是在一个文本框里输入任何字符 到所有字段去匹配
参考技术D 用存储过程
或者视图

SQL:一个表多列模糊查询


列1 列2 列3 列4
12ab 23bc 13ac 12bc

多列进行模糊查询,sql语句怎么写
比如:关键字3,把有3的列都显示出来

1.我觉得你这样就行了,一般也是这样来实现的
2.对于模糊查询T-SQL有四个通配符
%:包含0个或多个字符
_:匹配指定;
[]:指定范围
[^]:排除范围
3.你考虑的这种空格,可以在查询前,用js正则表达式来过滤。
4.对于稍复杂点的关键词搜索(比如新闻),常用的办法是在数据库中添加一个keyword字段,来配合通配符进行模糊查询或分类查询或热门关键字查询
5.关于复杂点的模糊查询,更好的方法是不用这些通配符来实现,而是通过js来实现(例如输入时产生搜索提示),或其他方法来作,思路是尽量少的对数据库进行操作。
参考技术A select decode(instr(列1,关键字),0,'',列1) 列1,decode(instr(列2,关键字),0,'',列2) 列2,
decode(instr(列3,关键字),0,'',列3) 列3,decode(instr(列4,关键字),0,'',列4) 列4
from xx

where 列1||列2||列3||列4 like '%关键字%'本回答被提问者和网友采纳
参考技术B 落下个字段 ,是这样的 Where 字段 like '%查询值%' or 字段2 like '%查询值%' or 字段3 like '%查询值%' 参考技术C select *
from 表
where 列1 like '%3%' or 列2 like '%3%' or 列3 like '%3%' or 列4 like '%3%'

以上是关于SQL中如果进行模糊查询整个表的主要内容,如果未能解决你的问题,请参考以下文章

SQL多表模糊查询

ORACLE多表模糊查询问题

sql两个表之间的模糊查询

SQL两表模糊匹配查询

NodeJS中Sql使用Like模糊查询时的问号(?)传参

SQL中哪些情况会引起全表扫描