读书人

存储过程,呀,怎么多项查找.人来!

发布时间: 2012-01-29 21:39:32 作者: rapoo

求一个存储过程,急呀,如何多项查找.......................................人来!!
比如有张表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
[解决办法]
这样,假如不分词的话,效率会极差.根本不使用..

读书人网 >asp.net

热点推荐