| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1799 人关注过本帖
标题:多条件查询的实现方法...
只看楼主 加入收藏
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 
以下是引用zhongx在2007-8-31 12:53:31的发言:


<form name="form1" method="post" action="search.asp">
条件1:<input type="text" name="A">[A为文本类型](可以为空,当关键字为空时,代表所有关键字.)<br>
条件2:<input type="text" name="B">[B为日期类型](可以为空,当关键字为空时,代表所有关键字.)<br>
条件3:<input type="text" name="C">[C为文本类型](可以为空,当关键字为空时,代表所有关键字.)<br>
条件4:<input type="text" name="D">[D为文本类型](可以为空,当关键字为空时,代表所有关键字.)<br>
<input type="submit" name="submit1" value="搜索">
</form>

(当所有关键字都为空时,显示全部数据.)

==== 这个又怎样写 search.asp 呢? 请教大哥们... ===

这个就比较烦了,要分多种情况考虑
A=request.form("A")
B=request.form("B")
C=request.form("C")
D=request.form("D")
set rs=Server.CreateObject("adodb.recordset")
if A="" and B="" and C="" and D=""
sql="select * from [table]" '显示整个表的数据
elseif A<>"" and B="" and C="" and D=""
sql="select * from [table] where condition"
elseif....
sql=....
end if
rs.open sql,conn,1,1
.....

2007-08-31 13:19
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 
以下是引用multiple1902在2007-8-31 13:00:27的发言:

大概是这样吧,我逆向思维很不好使的 呵呵

我的想法是 不管id是不是主键,id字段的作用是唯一确定一条记录(因为一般都是这么用的啊)

当然了,如你所说,id当然可以重复

所以我之前表达的意思是,如果老师需要在班上确定一位同学,给出学号就足够了,无需再给出其他信息,那样显得多余:“学号为xx的姓yy的同学来一下”

我明白你的意思,你这样做是一个很好的习惯,数据多了不会混淆。

2007-08-31 13:22
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
以下是引用madpbpl在2007-8-31 13:19:37的发言:

这个就比较烦了,要分多种情况考虑
A=request.form("A")
B=request.form("B")
C=request.form("C")
D=request.form("D")
set rs=Server.CreateObject("adodb.recordset")
if A="" and B="" and C="" and D=""
sql="select * from [table]" '显示整个表的数据
elseif A<>"" and B="" and C="" and D=""
sql="select * from [table] where condition"
elseif....
sql=....
end if
rs.open sql,conn,1,1
.....

你是以下的意思吗?

<%
'这个就比较烦了,要分多种情况考虑
A=request.form("A")
B=request.form("B")
C=request.form("C")
D=request.form("D")
set rs=Server.CreateObject("adodb.recordset")
if A="" and B="" and C="" and D="" then '当所有关键字为空时
sql="select * from [table]" '显示整个表的数据
elseif A<>"" and B="" and C="" and D="" then
sql="select * from [table] where condition"
elseif A="" and B<>"" and C="" and D="" then
sql="select * from [table] where condition"
elseif A="" and B="" and C<>"" and D="" then
sql="select * from [table] where condition"
elseif A="" and B="" and C="" and D<>"" then
sql="select * from [table] where condition"
end if
rs.open sql,conn,1,1
%>
<% do while not rs.eof%>
<%=rs("A")%><%=rs("B")%><%=rs("C")%><%=rs("D")%><%=rs("E")%>
<%
rs.movenext
loop
%>





感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-31 14:39
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 
condition要根据你的情况改成具体的条件,大概就是这个意思。
2007-08-31 16:59
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
其他语句有错误吗?
测试结果是:全部为空正确,全部有关键字时不正确,任一条件下有关键字时不正确.
condition ???

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-31 17:20
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 
condition就是条件的意思,不存在这样的写法,只是把condition换成你的条件
举个例子:全部有关键字时
if A<>"" and B<>"" and C<>"" and D<>"" then
sql ="select * from [table] where A like '%" & request("A") & "%' and B like '%" & request("B") & "%' and C like '%" & request("C") & "%' and D like '%" & request("D") & "%'"
else
.....
end if
前面的A、B、C、D是你数据库中的字段,后面的request A、B、C、D(偷懒,简写了,实际写法见上面sql语句)是你传过来的值
2007-08-31 17:28
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
这样写功能可以实现,但判断句就很多......

原来的我漏掉了like无写.

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-31 18:00
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
怪不得你会说:"这个就比较烦了,要分多种情况考虑"


感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-31 18:03
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
查询速度好像很慢呀!现在的库中才只有三条数据,数据多了怎么办呢?

有办法优化吗? 或还有其它办法吗?

辛苦你了!!!

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-31 18:18
multiple19O2
Rank: 1
等 级:新手上路
帖 子:326
专家分:0
注 册:2007-8-29
收藏
得分:0 
sql="select * from chanpin where 1=1"
if request("xxx")<>"" then sql=sql & " and xxx like '%" & request("xxx") & "'"


没人用这种“1=1 and”的写法么
2007-08-31 18:55
快速回复:多条件查询的实现方法...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032120 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved