多关键字搜索问题
怎么实现图中的搜索啊 我就说个关键字哦,,多个关键字,你可以用数组取得关键字的值,然后取搜索范围去对应匹配,多写几个and啦,把数组里的关键字写完,(还有就是过滤下啦,啦,数组中的关键字为空或有非法字符的不能用啦)其他想必楼主应该可以搞的啦 范围 and (关键字1 or 关键字2....) and 栏目 and ...
就是这样,很简单的。 至于空格的话可以用split分隔开就行了。 sql="SELECT daima,s3,bianhao,year1,name,zhuti,xianzhuang,gaishan,yujixiaoyi,xiaoyi,year2,luru,year3 FROM ad WHERE"
If zhuti<>"" Then sql=sql&" zhuti="&zhuti&" AND"
If name<>"" Then sql=sql&" name='"&name&"' AND"
If s3<>"" Then sql=sql&" s3 like '%"&s3&"%' AND"
If daima<>"" Then sql=sql&" daima like '%"&daima&"%' AND"
If bianhao1<>"" Then sql=sql&" bianhao1 like '%"&bianhao1&"%' AND"
If lei<>"" Then sql=sql&" lei like '%"&lei&"%' AND"
if right(sql,5)="WHERE" then sql=left(sql,clng(len(sql))-5) if right(sql,3)="AND" then sql=left(sql,clng(len(sql))-3)
sql=sql&" ORDER BY year1 DESC"
用了这个解决了 汗,asp的代码看的就是头晕。 如果有自己的服务器,就去 装个 分词组件吧,或者就是 构造 like 段 的SQL,多关键词用 空格 隔开,然后 用split()分开,用for 构造 sql 语句,但是注意的地方是 ,对提交的关键词 过滤掉一些非法字符。多个连续 空格 替换为一个,如下:
'函数delspace,替换多个空格为一个
Function delspace(Str)
dim re
Set re = New RegExp
re.IgnoreCase = True
re.Global = True
re.Pattern = " +"
delspace = re.Replace(Str, " ")
End Function
多测试下就发现 ,其实还是有很多问题。 结果也不是特别满意。如果要求不是很高,还过得去,效率也是个问题。
页:
[1]