比较不错的asp单表单字段多条件查询

时间:2022-03-02 01:38:27

用途:文章表内文章关键字查询

查询格式:百度google  百度好还是google好 百度+google (也可不输入条件全部查询)

  1. <!--#include file="conn.asp"-->  
  2. <%  
  3. Function SearshSQL(Tname,Lname,Str) 'Tname-表名 Lname-列名 Str-查询的字符  
  4. If Trim(Str)="" then  
  5.         MySql="Select * From "&Tname  
  6. Else          
  7.         Str=SqlEncode(Str)                         '预处理查询字符串  
  8.         ArrStr=split(Str," ")                '用空格分割处理后字符串  
  9.         Umax=Ubound(ArrStr)                        '分割后数组上维,确定分割成关键词的个数  
  10.         If Umax>0 Then                                '关键词中多个空格的处理,从第2维开始处理  
  11.                 For i=1 to Umax  
  12.                  StrTemp=ArrStr(i)  
  13.                  If Trim(StrTemp)="" Then StrTemp="/~~~~~/" '分割成的元素为空用特殊字符代替  
  14.                  Sql=Sql &" Or "& Lname &" like '%"& StrTemp &"%'"  
  15.                 Next  
  16.         End If  
  17.  
  18.         MySql="Select * From "& Tname &" where "& Lname &" like '%"&ArrStr(0)&"%'"&Sql  
  19.  
  20.         Do  
  21.           j=InStr(1,MySql, "%/~~~~~/%",1)  
  22.           If j=0 Then  
  23.                 Exit Do  
  24.           End If  
  25.           MySql=Replace(MySql," Or "&Lname&" like '%/~~~~~/%'","")  
  26.         Loop  
  27. End IF          
  28.  
  29.  
  30. SearshSQL=MySql  
  31.  
  32. end function  
  33.  
  34. Function SqlEncode(Str)                '格式化字符串  
  35. str=replace(str," "," ")        '先把左右的全角空格替换成半角空格  
  36. str=trim(str)  
  37. str=replace(str,"["," ")  
  38. str=replace(str,"';"," ")  
  39. str=replace(str,"'"," ")  
  40. str=replace(str,"_"," ")  
  41. str=replace(str,"%"," ")  
  42. str=replace(str,"+"," ")  
  43. str=replace(str," "," ")  
  44. sqlencode=str  
  45. end function  
  46. %>  
  47. <%  
  48. sql=SearshSQL("article","coments","萝卜+白菜 狗熊") +"order by..(排序)"  
  49. Set rs=Server.Createobject("ADODB.RECORDSET")  
  50. rs.Open sql,conn,1,1  
  51. if not rs.eof then  

下面的自己写