求一个存储过程,急呀,如何多项查找.......................................人来!!
比如有张表table
p_id p_name
1 发烧,高热
2 发烧,高热,无聊
3 很无聊
我查询 "发烧,高热 "的时候 点击 在datagrid中显示2条纪录.......
------解决方案--------------------有没有词库?分词了
------解决方案--------------------那要拆分了,你要实现的强大的话,那就成分词了..
------解决方案--------------------你不能保证发烧高热这两个词肯定是连在一起的吧,假如有一条是发烧,无聊,高热,那你输入发烧高热是否要挑选出来呢?
------解决方案--------------------CREATE PROCEDURE SEL_return
@VALUE NVARCHAR(4000),
AS
SELECT * FROM Table where CHARINDEX(p_name,@VALUE )> 0 OR CHARINDEX(@VALUE,p_name )> 0
执行时 execute SEL_return N '发烧高热 '
------解决方案--------------------这个从你要实现的功能上来看,只是存储过程是实现不了了.要有词库,那就话多了,呵呵..
------解决方案--------------------那说明你考虑的还不够全,他是以词来分,还是以字来分,这个不是一两句话能说的清,例如 '发明,烧酒,高大,热血 ',也有发烧高热这四个字,那你是否要挑选出来呢?
------解决方案--------------------就是汉字的词库,就象汉语词典,里面包含一些常用的词.
------解决方案--------------------分词一般都是做搜索引擎用的,你可以看一下百度,google.这可不是简单的事情,有一定的难度,你考虑好了哦...
------解决方案--------------------要求前台输入做一定的格式限制,来区分关键字。
如“一 二”,以空格来区分有两个关键字,在用关键字进行“与”\“或”匹配,看你的要求。
------解决方案--------------------用","把条件分开,查询出来,可以使用存储过程,也可以使用动态sql
------解决方案--------------------这样,假如不分词的话,效率会极差.根本不使用..