sql 查询所有字段只要包含某关键字的记录

如题,即:用sql,给定某关键字,从某表中去找,只要有一个字段like这个关键字,即把该记录找出,感谢!
谢谢各位热心人啦!虽然没能得到较满意的答案,但是咨询了高手,建立一个循环函数解决!

所有字段?

如果是这样需求的话, 那没简便方法,只能这样写了:

select * from 表
where 字段1 like '%关键字%' or 字段2 like '%关键字%' or 字段3 like '%关键字%' or ...字段n like '%关键字%'
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-21
如果你的数据量少就没有影响,太多的话就需要优化数据库了
第2个回答  2017-12-19
OR 的连接必须加括号,要不然数据是错误的
第3个回答  2010-06-21
我来回答: 一般来说 只要关键字段和关键词 进行 like比较的,而不会全部字段比较。

至于“会不会导致数据库拒绝执行呢?而且还有效率问题”,建议你写个存储过程吧,执行存储。

如:

go
create procedure GetKeyWordRecord @keyWord varchar(20)
as
set @keyWord = '%' + @keyWord + '%'
select * from 你的表
where
你的字段1 like @keyWord or
你的字段2 like @keyWord or
你的字段3 like @keyWord or
你的字段4 like @keyWord or
你的字段5 like @keyWord --- 更多字段省略
go

exec GetKeyWordRecord '关键词'本回答被提问者采纳

sql 查询所有字段只要包含某关键字的记录
select * from 表 where 字段1 like '%关键字%' or 字段2 like '%关键字%' or 字段3 like '%关键字%' or ...字段n like '%关键字%'

现在用sql语句查出来字段里包含某个字符串的所有记录怎么查
一般用substring函数截取出特定字段,如--用户姓名第二个字是'大'字的select * from Users where SUBSTRING(UserName,2,1)='大'第二种方法就是直接like模糊查询,看具体情况使用select * from Users where UserName like '%大%'

从两张表里面查询出都有某个关键字的记录 怎么写sql(mysql)
表一:tab1(字段有:身份证号、姓名、出生年月……)表二:tab2(字段有:工资、奖金、身份证号……)然后按身份证号作为关联查询?如果是,就类似:select tab1.字段1, tab1.字段2………tab2.字段n from tab1, tab2 where tab1.身份证号 = tab2.身份证号 select部分,写你想...

我需要用sql语句来查询 某个字段值 中包含一个 特定字符串 的所有数据...
假设字段为名 Samp 查询Samp中包含“#”这个字符,表名为 A SELECT * FROM A WHERE Samp like '%#%' ;值得注意的是你查询的特定字符串中,包含“_”或“%”就要使用转义符“\\”例如你要查询的特定字符串是“_@”SELECT * FROM A WHERE Samp like '%\\_@%' ESCAPE '\\' ;...

如何使用sql server查询整个数据库某一个关键字
感觉你最好先搞个查询,别直接替换,风险太大。代码如下(这个是查找库里所有记录中含“张三”的数据,替换里边的张三那个字符串就行):declare @cloumns varchar(40)declare @tablename varchar(40)declare @str varchar(40)declare @counts intdeclare @sql nvarchar(2000)declare MyCursor Cursor For...

sql 如何查询包含某一字段的值?
@tablenameWhile(@@Fetch_Status = 0)Beginset @sql='select @tmp_counts=count(*) from ' +@tablename+ ' where ' +@cloumns+' = ''' +@str+ '''execute sp_executesql @sql,N'@tmp_counts int out',@counts outif @counts>0beginprint '表名为:'+@tablename+',字段名为'+...

sql语句 查询字段中包含某个数字的列信息
select * from info where (',' + id + ',') like ('%,' + '9' +',%')

sql 查询所有字段是否包含一个字符
set @objname = '表名'set @sql='select * from ' +@objname +' where 'select @sql=@sql+name+' like ''%'+@word+'%'' or ' from syscolumns where id = object_id(@objname) order by colid set @sql=SUBSTRING(@sql,1,len(@sql)-3)exec(@sql)以上为只要有一个字段有搜索...

怎么从数据库中查询出一列包含有某个字的记录
1、创建测试表、插入数据:create table test(id int,name varchar(10))insert into test values (1,'张三丰')insert into test values (2,'张无忌')insert into test values (3,'杨逍')insert into test values (4,'谢逊')2、执行语句,查找name列中含有“张”的记录,语句如下:select * ...

SQL数据库,如何查询数据库内含有某一列(某字段,如name)的所有表
SQL数据库,查询包含列(字段,如名称)的数据库中的所有表的步骤如下:需要准备的材料是:计算机,sql finder。1,首先,打开sql查询器并连接到相应的数据连接,例如测试库。2,单击“查询”按钮并键入:select table_name来自information_schema.columns,其中table_schema =“test”和column_name =“...

相似回答