中国设计秀欢迎投稿
中国设计秀设计资源站
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
广州网站设计 维美网站建设 域名注册 虚拟主机 广州网站建设 广州网页设计 虚拟主机 域名注册 素材下载 广告服务 中国品牌形象设计 网站推广 家具中国
求创科技
中国设计秀
中国福网
金视觉
中国设计秀欢迎你
中国品牌形象设计网
中国设计秀
当前位置:网络学院首页 >> 编程开发 >> asp >> asp中实现多条件模糊查询SQL语句

asp中实现多条件模糊查询SQL语句

来源:中国设计秀    作者:jorux    点击:117     加入收藏    发表评论
0
顶一下
关键字:模糊 语句 asp 教程
中资源

  摘要:这篇文章主要针对有一定asp编程经验和SQL语句基础的爱好者如何写模糊查询语句和多条件查询。

  很多网友问到如何写模糊查询语句和多条件查询,今天网友小爱又问起了这个问题,刚好前几天给一个单位写个OA涉及到多条件模糊查询,那个查询比较多、专业名词也多,这里我整理了一下,假设以姓名、性别、电话号...作为数据库中的字段名。

  通常写一个简单的模糊查询的SQL语句格式可以如下例: 

  说明:1、WHERE 关键词的后面跟着用来过滤数据的条件,百分号%是通配符,可以代表多个任何字符,若是下划线_就代表一个任意字符。
实例如下:
sql="select * from 表名 where 姓名 like ’%"&request.form("name")&"%’ and 性别 like ’%"&request.form("sex")&"%’ and 电话 like 
’%"&request.form("call")&"%’ "
  上面这条SQL语句使用了三个模糊查询条件:姓名、性别、电话,当然我们还可以用类似
的方式构造更多的条件。这样我们就实现了多条件的模糊查询,实际试一试,问题出来了!!!如果数据库的查询字段都有值的化没问题,但如果是下边这样:
         姓名                                  性别           电话
         www.DeepTeach.com                    87654321
        当你模糊查询:"电话:5432"时将无法输出该记录,这是因为"性别"无值所以经两个and运算后结果为false/0,没有输出。 显然数据库中这三个字段的必须含有字段值,否则会漏掉正确的输出结果,
        数据库中正确的输入应是这样的:
         姓名                                   性别            电话
         www.DeepTeach.com       null       87654321
       <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 if
      切记:sql="select * from 表名 where 姓名 ... 电话 like ... "
         必须在一行内输入完,而不能用回车符分段,因为vbs多行被认为是多个语句,这是许多初写者常犯的错误。如果你想分多段写,可以用上面的方法在现有变量基础上逐步增加查询语句的各个组成部分并把它存在同一变量内实现。在封闭引号之前或者在打开引号之后你需要增加空格,这样才能保证字符串连接起来的时候你没有把几个词凑到了一块。

2008-03-11 00:35:00    出处:中国设计秀cnwebshow.com
热点文章/相关文章
关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明 | 网站公告 | 友情链接 | 留言 | 旧版入口