• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

关于contains

linseng129 中国 2008-03-21 11:55:25
如果是按照常规的检索,那么应该是contains(ColName,'关键词')对吗?
但是现在问题是反过来,我的关键词是ColName里面的值,而被检索的是"关键词"也就是用户输入的字符串,这个怎么检索啊?
...全文
654 点赞 收藏 20
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wzy_love_sly 2008-03-21
sorry 没听懂哦
回复
linseng129 2008-03-21
sql语句:select top 10 字段名 from tb_name where patindex(字段名,被查询的字符串变量)>0
这里是指在"被查询的字符串变量"中找出包含"字段名"的值的记录
回复
linseng129 2008-03-21
wzy_love_sly,问题是'%'+s+'%' 我这里是字段里本来就有的值怎么办?
回复
wzy_love_sly 2008-03-21
不行?
回复
linseng129 2008-03-21
顶!!!
回复
wzy_love_sly 2008-03-21
declare @tb table (s varchar(50))
insert into @tb select 'abc'
insert into @tb select 'ab'
insert into @tb select 'ac'

select * from @tb
where patindex('%'+s+'%','abcd')>0


abc
ab
回复
zheninchangjiang 2008-03-21
在程序中可以参数
然后参数值=用户输入字符串,不知道你是用什么写程序的
回复
wzy_love_sly 2008-03-21
一个意思
回复
linseng129 2008-03-21
所以呀,我郁闷呀,不过还是要谢谢你的
回复
wzy_love_sly 2008-03-21
contains就查列里包含字符吧,语法就那样,感觉不行吧
回复
linseng129 2008-03-21
可以是可以了
但是速度很慢,用contains会快点吗?
回复
wzy_love_sly 2008-03-21
create table tb(col1 varchar(5))
insert into tb select 'ab'
insert into tb select 'cd'
insert into tb select 'ef'

declare @v varchar(20)
set @v='acdefg '
select * from tb
where patindex('%'+col1+'%',@v)>0


cd
ef
回复
linseng129 2008-03-21
表已经建立全文索引并填充
回复
linseng129 2008-03-21
表tb1
col1
ab
cd
ef


关键词:acdefg


需要从表中找出来的是 cd 和 ef
回复
wzy_love_sly 2008-03-21
给点数据,还有你用的查询语句,估计大家都没看懂你说的意思
回复
linseng129 2008-03-21
查不出来数据,但没出错
回复
wzy_love_sly 2008-03-21
那就我那样写啊 s不就是列了,

declare @tb table (s varchar(50))
insert into @tb select 'abc'
insert into @tb select 'ab'
insert into @tb select 'ac'
包含在'abcd'里的有
abc
ab
2个,不对吗?
回复
linseng129 2008-03-21

就是现有列名里面的值
回复
wzy_love_sly 2008-03-21
sorry 什么叫‘数据表字段里本身就有的值’,不就是列名吗?
回复
linseng129 2008-03-21
就是patindex里第一个参数,不是输入进去的,是数据表字段里本身就有的值
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-21 11:55
社区公告
暂无公告