注册 登录
编程论坛 ASP技术论坛

关于多条件查询的问题,请指教下谢谢~~

w106817 发布于 2010-01-18 02:33, 548 次点击
具体想要实现多个多选列表中,当选中值为“所有”时就查询字段所有值否则就按条件查询,自己编了下老不对,请教下大家,谢谢~~~
<%  
sql="select * from test1 where 1=1"
if cname<>"所有" then
sql= sql & "and nname='"&cname&"'"
end if
if mima<>"所有" then
sql=sql & " and mpwd='"&mima&"'"
end if
if dz<>"所有" then
sql=sql & "and dhz='"&dz&"'"
end if
rs.open sql,conn,1,1
%>

[ 本帖最后由 w106817 于 2010-1-18 02:55 编辑 ]
6 回复
#2
孤独冷雨2010-01-18 08:11
你把mpwd='"&mima&"'" 换成mpwd like '%"&mima&"%'"试试!
#3
chenguoxing5172010-01-18 12:48
使用like,模糊查询
#4
w1068172010-01-18 12:50
换成like也不行,问题主要是查询结果不对,本来把3个条件都选成所有的话应该出所有记录,但是只会出现一条记录,其中一或两个条件选所有,其他不选所有查询结果也不对。只有3个都不选所有时查询结果才符合。
是否要按所有条件写出SQL语句,如
sql="select * from test1 where 1=1"
if cname<>"所有" and mima<>"所有" and dz<>"所有" then
sql= sql & "and nname='"&cname&"' and mpwd='"&mima&"' and dhz='"&dz&"'"
end if
if cname<>"所有" and mima<>"所有" and dz="所有" then
sql=sql & "and nname='"&cname&"' and mpwd='"&mima&"'"
end if
if cname<>"所有" and mima="所有" and dz<>"所有" then
sql=sql & "and nname='"&cname&"' and dhz='"&dz&"'"
end if
if cname<>"所有" and mima="所有" and dz="所有" then
sql=sql & "and nname='"&cname&"'"
end if
if cname="所有" and mima<>"所有" and dz<>"所有" then
sql=sql & "and mpwd='"&mima&"' and dhz='"&dz&"'"
end if
............
这样写太麻烦了~~~谢谢版主指教
#5
孤独冷雨2010-01-18 14:11
把你的所有换成空试试,我常用的产品搜索,当地区和类别和关键字不选时,就列出所有内容,和你那个“所有”一样value为空:

       dq=trim(Request("dq"))'地区
       lb=trim(Request("lb")) '产品类别
       keyword=trim(Request("keyword"))'关键字



sql="select * from com_pd where 1=1"

if dq<>"" then
   sql=sql+" and dq = '"&dq&"'"
end if

if lb<>"" then
   sql=sql+" and pd_sort = '"&lb&"'"
end if

if keyword<>"" then
   sql=sql+" and (pd_name like '%"&keyword&"%' or pd_intro like '%"&keyword&"%')"
end if

sql=sql+" order by addtime desc"

 rs.open sql,conn,1,1
#6
w1068172010-01-18 20:23
空值的话表单提交不了,是不是自己表单没写对,下面我写的空值表单。
<input type="radio" name="user" value=""/>全部
再谢下版主经常帮我解答问题

[ 本帖最后由 w106817 于 2010-1-19 11:51 编辑 ]
#7
孤独冷雨2010-01-19 08:24
你那文本输入框是不作了JS判断了啊!
我用的是下拉列表做的,然后将所有类别循环出来:
<select name="s1"  style="width:180px;">
<option value="">全部</option>
<option value="采掘技术">采掘技术</option>
<option value="选矿技术">选矿技术</option>
<option value="铜冶炼技术">铜冶炼技术</option>
<option value="铜加工技术">铜加工技术</option>
</select>
要不你把你的程序和数据库传上来,我帮你改一下吧!
1