日期:2011-10-25 浏览次数:21140 次
<null>值的逻辑值为1,所以经两次and运算后结果为true/1,可以输出上述记录。
那么在实际中如何来实现这样的多条件模糊查询呢?我是这样来实现的:
name=Request.QueryString("name") ’姓名
sex=Request.QueryString("sex") ’性别
call=Request.QueryString("call") ’电话
Sql= "Select * from 表名 where 1=1" ’1=1 避免所有查询字段为空时出错
if name <>"" then
Sql= Sql & "and 姓名 like ’%"& name &"%’"
end if
if sex <>"" then
Sql= Sql & "and 性别 = ’"& sex &"’" ’这个不是模糊查询了
end if
if call <>"" then
Sql= Sql & "and 电话 like ’%"& call &"%’"
end if
......
在此,你要注意到姓名、性别、电话这三个字段在数据库中的类型应为“文本”类型,否则查询时会出现“数据类型不匹配”错误。
如果三个条件均无输入,点击“查询”时将显示数据库中的所有记录,可能这是你不希望的,可以应该加入一个判断:当三个条件均无输入时,显示“请输入查询条件”,并中断输出到客户浏览器(response.end)例句如下:
if request.form("name")="" and request.form("sex")="" and request.form("call")="" then
response.write("请输入查询条件(可模糊查询)")
response.end
end&