用途:文章表内文章关键字查询
查询格式:百度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
下面的自己写