asp 高级模糊查询

access数据库.我想实现的效果是:输入:我爱你将存在"我爱你"这个词的条目前面显示,存在"我爱你"中的任意两个的下面显示.只存一个的最下面显示.这里我只是举一个例子,... access数据库.
我想实现的效果是:

输入:我爱你

将存在"我爱你"这个词的条目前面显示,存在"我 爱 你"中的任意两个的下面显示.只存一个的最下面显示.

这里我只是举一个例子,查询的词并非只有3个字这么简单,有时是一句话,也就是要选出最相似的条目,像百度那样.

不知是否表述清楚.普通的查询语句我知道.解决问题了再追加200分.万分感谢!
nieyang:请注意你的语言,“对牛弹琴”?谁是牛啊?你那破思路我几年前就知道了,我要的是高效的方法.你回答的要是好我还会重新发问吗?不要认为自己很NB,问问题的人不一定就比你差.....
展开
 我来答
ShOw_MrKim
2008-08-10 · TA获得超过265个赞
知道答主
回答量:99
采纳率:0%
帮助的人:0
展开全部
key=replace(replace(replace(replace(replace(replace(replace(request(keywords)," ","")," ","")," ","")," ","")," ","")," ","")," ","") '尽可能把多余的空格替换掉
words=split(key," ") '把输入的关键字按空格断成书组
sql="select * from table where 字段 like '%"&key&"%'" '先给一个条件 什么条件都行
for i= 0 to ubound(words)-1 '把数组循环取出
sql=sql&" or 字段 like '%"&words(i)&"%'"
next
rs.open sql,conn,1,1
liushui101
2008-08-10 · TA获得超过166个赞
知道答主
回答量:180
采纳率:0%
帮助的人:173万
展开全部
这个相对来说比较麻烦,写程序组合,首先将字符分离,然后再根据自己想要查询的效果组合,如,我爱你,爱你,我爱等,然后用数据库查询语句union连接,select * from table where column like'%我爱你%' union select * from table where column like '%爱你%' union select * from table where column like '%我爱%'类似连接多条语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
法芹恨X
2008-08-13 · TA获得超过101个赞
知道小有建树答主
回答量:700
采纳率:0%
帮助的人:0
展开全部
修改答复

那破思路并不是很高的技术,既然你几年前就知道了,怎么这么多年来,还是那个破技术,解决不了这些问题呢?是不是脑子坏了啊?

以为百度就是像你那样搜索的,正的是技术够强啊!
估计你没听说过百度的分词词库吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zeronex2
2008-08-13 · 超过12用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:0
展开全部
nieyang的应该是上面说的最好的了。。不过如他所说太耗资源了
其实也可以改用数组解决这个问题
思路大概就是
把查询出来的东西存入数组[2维数组],数组里面要有个排序数(默认为0)
排序数改变思路[存在字符排序数+1]和4楼一样就OK
之后的排序输出当然用冒泡了(又废话了。。)
那样的话虽然可以解决耗资源问题。。但代码比较长
个人比较懒就不写出来了XD(抽

。。nieyang。我当然知道你说的耗资源在哪。。
我也无忽悠谁,我只是提议用数组罢了(也不见得大数据量的时候多次写入效率好到哪里去)
我只是说在存入数组后要如何排序罢了
当然我说的只是少量数据的情况,大数据量当然是不可能的(数组方法本来就是用在提高小数据量查询的效率用的)
对ASP来说大数据量查询又要有效率本来就是一难点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
koumenglin
2008-08-20 · TA获得超过643个赞
知道小有建树答主
回答量:1250
采纳率:0%
帮助的人:766万
展开全部
abc=trim(replace(request("表单文本内容")," ",""))
sql="SELECT * FROM [数据表名] where [字段] like '%"&abc&"%'"
rs.open sql,conn,1,3

专门试过了.没问题..不管你加几个空格都行.一楼的太麻烦了.如果空格与你替换的不一样多就不行咯.
replace替换掉取到的空格为空,trim 模糊
按你的问题补充一共写为如下

abc=trim(replace(request("文本内容")," ",""))
if trim(abc)="对牛弹琴" then
response.write "<script>alert('nieyang:请注意你的语言,“对牛弹琴”?谁是牛啊?你那破思路我几年前就知道了,我要的是高效的方法.你回答的要是好我还会重新发问吗?不要认为自己很NB,问问题的人不一定就比你差.....');history.back();"
response.end
else
sql="SELECT * FROM [数据表名] where [字段] like '%"&abc&"%'"
rs.open sql,conn,1,3

.......
end if
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式