用途:文章表內文章關鍵字查詢 查詢格式: 百度 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