巴里坤:asp中如何实现多关键字的模糊查询?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 16:06:04
asp中单个关键字的模糊查询我掌握了,但多个关键字如何实现呢?
我指的是在同一个字段中查询,比如:
字段数据“请对您的问题进行补充”,那么关键字:
问题 进行
就可以查询到这个数据,而关键字:
问题 提问
就查不到这个数据。
还有就是,怎样将输入框中的两个或两个以上空格分开的关键字提取出来?
*:比如百度的这种查询方式如何用ASP实现。
————————————————————
悬赏分提高到200,谁能帮忙给个详细答案,那么这位高人,小弟的分就都给您了。

同时鄙视2楼进行更改,抄袭12楼的答案!!!!
同时鄙视2楼进行更改,抄袭12楼的答案!!!!
同时鄙视2楼进行更改,抄袭12楼的答案!!!!
各位继续!!!

下面引用12楼答案,作一下补充:

12楼的回答确实不错,但有一个错误,就是最后一句
response.Write(newsql)
应该改成:
sql=newsql
这样就很不错了

还有就是精确查询用and 模糊查询用or

另外根据12楼的代码提供给楼主一个像百度一样,关键字显示红色的代码:

rs.Open sql,con,1,2
if not(rs.eof and rs.bof) then
while not rs.eof
dim a,b,c,d
for i=0 to lenarr
a=arr(i)
b="<font style=color:#e10900>"&a&"</font>"
if i=0 then
c="问题 进行 补充"
else
c=d
end if
d=Replace(c,a,b)
next
显示一个查询结果(比如response.write d)的代码
wend
else
response.write "没有找到"
end if

这样的sql语句可以这样写:sql="select * from [tablename] where 字段名 like'%"&keyword1&"%' and 字段名 like'%"&keyword2&"%'"
看了5楼的答复,我补充一点如果你是想用空格分开后两个词都要做条件可以用keywordarr=split(keyword," ") keyword1=keywordarr(0)
keyword2=keywordarr(1);如果你是想实现4楼的搜索功能,好象用asp确实有难度。

以下为两个以上的空格分开的详细代码:
sql="select * from [tablename] where"
str="问题 进行 补充"
arr=split(str," ")
lenarr=ubound(arr)
for i=0 to lenarr
if i=lenarr then
temp=temp&" 字段名 like'%"&arr(i)&"%' "
else
temp=temp&" 字段名 like'%"&arr(i)&"%' and "
end if
next
newsql=sql&temp
response.Write(newsql)

这样的sql语句可以这样写:sql="select * from [tablename] where 字段名 like'%"&keyword1&"%' and 字段名 like'%"&keyword2&"%'"
看了5楼的答复,我补充一点如果你是想用空格分开后两个词都要做条件可以用keywordarr=split(keyword," ") keyword1=keywordarr(0)
keyword2=keywordarr(1);如果你是想实现4楼的搜索功能,好象用asp确实有难度。

以下为两个以上的空格分开的详细代码:
sql="select * from [tablename] where"
str="问题 进行 补充"
arr=split(str," ")
lenarr=ubound(arr)
for i=0 to lenarr
if i=lenarr then
temp=temp&" 字段名 like'%"&arr(i)&"%' "
else
temp=temp&" 字段名 like'%"&arr(i)&"%' and "
end if
next
newsql=sql&temp
response.Write(newsql)

可惜我不知道
拿不到分了~
   不过支持一下啊

楼主大大,建议你去看看SQL的相关教程,不必把分都散在这里.

也许你应该多去看一些那种类的书`看看SQL这些应该会对你有帮助`这么告诉你知道的反而让你很快忘记`