请教sql高手,关于sqlserver的一个字段多个关键字模糊查询的问题。

假如表T中的C1、C2、C3是字符串是要搜索的,已经用带3个参数的存储过程实现。但是现在需求变了,C3有若干不定数量的关键字,查询的是包含这些关键字并且是and的关系的记... 假如表T中的C1、C2、C3是字符串是要搜索的,已经用带3个参数的存储过程实现。
但是现在需求变了,C3有若干不定数量的关键字,查询的是包含这些关键字并且是and的关系的记录。
问题是如果我还想用存储过程的形式,如何传数组参数过去?如果不用,而用C#组合查询字符串,性能又会改变多少?
展开
 我来答
下扬州啊
2013-08-14 · TA获得超过2519个赞
知道大有可为答主
回答量:4870
采纳率:40%
帮助的人:2089万
展开全部
穿带格式的字符串,然后在存储过程里面分解
比如 ‘1334||3695||1112’
在存储过程里面分解成
(c like '%1334%' and c like '%3695%' and C like ‘%1112%’)
更多追问追答
追问
如何分解,请给语句?还有你这样得到一个字符串,如何用在select语句里面?
追答
分解啊,分解后,组合sql语句
比如你的存储过程为 myProcedure (stra,strb,strc)
stra,strb 不需要做处理,直接 C1 like '%stra%' and C2 like '%strb%'
strc就要处理了,把几个值提取出来
组合成我上面说的那样式的
当然,这样做就要定义一个字符串类型的变量来存放了
@sql varchar(max)

set @sql='select * from table where C1 like ''%'+stra+'%'' and C2 like '''%'+strb+'%'' and C3.......'
你自己照格式处理吧
最后exec @sql
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式