一个表 多字段 查询

cp713 2008-12-06 10:20:22
比如一个表多字段 a b c
如何查询 a b c随便哪个字段包含 '1' 就可以了
...全文
57 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpzpyesterday 2008-12-06
  • 打赏
  • 举报
回复
如果就是a,b,c3个字段的话,穷举法就可以

select * from tablename where (a like '%1%') or (b like '%1%') or (c like '%1%')

如果是表中所有字段的话

declare @a varchar(8000)
declare @b varchar(8000)
set @b = 'select * from tablename where '
select @a=isnull(@a+'or ('+[name] + ' like ''%1%'' ) ','') from syscolumns where id = object_id('tablename ')
set @b =@b+substring(@a,3,len(@a)-2)
exec (@b)

这个应该可以
claro 2008-12-06
  • 打赏
  • 举报
回复
高效.
csdyyr 2008-12-06
  • 打赏
  • 举报
回复

select * from tb
where charindex('1', a)>0 or charindex('1', b)>0 or charindex('1', c)>0
cp713 2008-12-06
  • 打赏
  • 举报
回复
都是高手啊
chinaxc 2008-12-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 csdyyr 的回复:]
SQL code
select * from tb
where charindex('1', a)>0 or charindex('1', b)>0 or charindex('1', c)>0
[/Quote]
[Quote=引用 3 楼 zpzpyesterday 的回复:]
如果就是a,b,c3个字段的话,穷举法就可以

SQL code
select * from tablename where (a like '%1%') or (b like '%1%') or (c like '%1%')



如果是表中所有字段的话

SQL code
declare @a varchar(8000)
declare @b varchar(8000)
set @b = 'select * from tablename where '
select @a=isnull(@a+'or ('+[name] + ' like ''%1%'' ) ','') from syscolumns where id = object_id('tablename ')
set @b =@b+s…
[/Quote]
nx........

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧