我是个新手 现在做一个模糊的查找 fanginfo
id序号
type类别
fi_bt标题
fi_fx房型
fi_hx户型
fi_cq产权
fi_qy区域
fi_kjdd靠近地段
fi_dz地址
fi_lc楼层
fi_mj建筑面积
fi_nd 建筑年代
fi_zj出售总价
fi_tj价格条件
fi_ms价格描述
fi_sfzj是否中介
fi_yxq有效期
fi_zpfs租凭方式
fi_qgj求购价
fi_zq最短租期
fi_fzj租金fi_lcyq楼层要求
fi_cyyq朝阳要求
fi_cqzh产权证号
fi_cqr产权人姓名
fi_symj使用面积
fi_tupian图片
fi_zxcd装修程度
fi_ptss配套设施
fi_fkyq付款要求
fi_yjyq押金要求
fi_rzsj入住时间
fi_gjzd工交站点
fi_qt其他说明
这个是表结构 我想输入一个关键字 来遍例整个表,但是现在的问题是还有其他的条件 那样语句内容会很长 我不想 type like...一个个的 这样写 请问有什么号的办法一次就吧整个表名遍例出来吗 然后我在 and下其他的条件 谢谢各位老师了 帮帮我吧!
id序号
type类别
fi_bt标题
fi_fx房型
fi_hx户型
fi_cq产权
fi_qy区域
fi_kjdd靠近地段
fi_dz地址
fi_lc楼层
fi_mj建筑面积
fi_nd 建筑年代
fi_zj出售总价
fi_tj价格条件
fi_ms价格描述
fi_sfzj是否中介
fi_yxq有效期
fi_zpfs租凭方式
fi_qgj求购价
fi_zq最短租期
fi_fzj租金fi_lcyq楼层要求
fi_cyyq朝阳要求
fi_cqzh产权证号
fi_cqr产权人姓名
fi_symj使用面积
fi_tupian图片
fi_zxcd装修程度
fi_ptss配套设施
fi_fkyq付款要求
fi_yjyq押金要求
fi_rzsj入住时间
fi_gjzd工交站点
fi_qt其他说明
这个是表结构 我想输入一个关键字 来遍例整个表,但是现在的问题是还有其他的条件 那样语句内容会很长 我不想 type like...一个个的 这样写 请问有什么号的办法一次就吧整个表名遍例出来吗 然后我在 and下其他的条件 谢谢各位老师了 帮帮我吧!
From 表名
Where 字段1+字段2+字段3+..... like "%关键字%"
那你就要动态拼sql语句了.你可能会觉得更麻烦.
SELECT dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name
FROM dbo.syscolumns INNER JOIN
dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id
WHERE dbo.sysobjects.name='表名'and
(dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties'))
这是获取一个表中的所有字段.你根据这个慢慢拼吧..最好写个存储过程.最终你的拼完后生成的sql其实就是你每个字段都like ..like一遍.只是字段是通过动态拼出来的.
写个存储过程在过程里边拼.先通过上边给的那串sql获取你的表里的所有字段.然后循环把这些字段都拼成一条sql语句的where部分.拼完后最终生成的sql就是你每个字段都like一遍那种.只不过是拼的时候只要写一个即可了.因为有循环.不知道你明白不明白.如:@sql = @sql+变量+' like ''%关键字%'''//对这个做循环,变量就是你的表的字段名,对所有的字段进行循环.
(
col1 varchar(10),
col2 varchar(10),
col3 varchar(10)
)insert into table1
select 'a','b','c'
union
select 'a1','b1','c1'
union
select 'a2','b2','c2'select * from table1
拼sql语句如下:declare @temp table
(
[id] int IDENTITY(1,1),
[Column_name] varchar(10)
)declare @tempId int,@colName varchar(10),@sql varchar(500)set @sql = 'select * from table1 where 'insert into @temp (Column_name)
SELECT dbo.syscolumns.name AS Column_name
FROM dbo.syscolumns INNER JOIN
dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id
WHERE dbo.sysobjects.name='table1'and
(dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties'))--select * from @tempWHILE EXISTS(select [id] from @temp)
begin
SET ROWCOUNT 1
select @tempId = [id],@colName=[Column_name] from @temp
SET ROWCOUNT 0
delete from @temp where [id] = @tempId set @sql = @sql+' '+@colName +' like ''%a%'' or'endset @sql = stuff(@sql,len(@sql)-1,2,'')
exec (@sql)
自己试一下吧.