比较不错的asp单表单字段多条件查询 |
用途:文章表内文章关键字查询 查询格式: 百度 google 百度好还是google好 百度+google (也可不输入条件全部查询) <!--#include file="conn.asp"--> <% Function SearshSQL(Tname,Lname,Str) Tname-表名 Lname-列名 Str-查询的字符 If Trim(Str)="" then MySql="Select * From "&Tname Else Str=SqlEncode(Str) 预处理查询字符串 ArrStr=split(Str," ") 用空格分割处理后字符串 Umax=Ubound(ArrStr) 分割后数组上维,确定分割成关键词的个数 If Umax>0 Then 关键词中多个空格的处理,从第2维开始处理 For i=1 to Umax StrTemp=ArrStr(i) If Trim(StrTemp)="" Then StrTemp="/'''''/" 分割成的元素为空用特殊字符代替 Sql=Sql &" Or "& Lname &" like %"& StrTemp &"%" Next End If MySql="Select * From "& Tname &" where "& Lname &" like %"&ArrStr(0)&"%"&Sql Do j=InStr(1,MySql, "%/'''''/%",1) If j=0 Then Exit Do End If MySql=Replace(MySql," Or "&Lname&" like %/'''''/%","") Loop End IF SearshSQL=MySql end function Function SqlEncode(Str) 格式化字符串 str=replace(str," "," ") 先把左右的全角空格替换成半角空格 str=trim(str) str=replace(str,"["," ") str=replace(str,";"," ") str=replace(str,""," ") str=replace(str,"_"," ") str=replace(str,"%"," ") str=replace(str,"+"," ") str=replace(str," "," ") sqlencode=str end function %> <% sql=SearshSQL("article","coments","萝卜+白菜 狗熊") +"order by..(排序)" Set rs=Server.Createobject("ADODB.RECORDSET") rs.Open sql,conn,1,1 if not rs.eof then 下面的自己写 |