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

2014 年 6 月 25 日3710

当前位置:网站首页 > Web学院 > 网站编程 > ASP教程 > ASP应用教程[打印][收藏]

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

网友评论 0 条 2007-4-7 11:36:26 来源: 不详

阿里西西下载中心 - 最新优秀源码下载

作者:吕海鹏
来自:http://www.zjjv.com/
摘要:这篇文章主要针对有一定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语句使用了三个模糊查询条件:姓名、性别、电话,当然我们还可以用类似
的方式构造更多的条件。这样我们就实现了多条件的模糊查询,实际试一试,问题出来了!!!如果数据库的查询字段都有值的化没问题,但如果是下边这样:
姓名性别电话
http://www.zjjv.com/87654321
当你模糊查询:"电话:5432"时将无法输出该记录,这是因为"性别"无值所以经两个and运算后结果为false/0,没有输出。显然数据库中这三个字段的必须含有字段值,否则会漏掉正确的输出结果,
数据库中正确的输入应是这样的:
姓名性别电话
http://www.zjjv.com/null87654321

<null>值的逻辑值为1,所以经两次and运算后结果为true/1,可以输出上述记录。

那么在实际中如何来实现这样的多条件模糊查询呢?我是这样来实现的:

name=Request.QueryString("name")’姓名
sex=Request.QueryString("sex")’性别
call=Request.QueryString("call")’电话

Sql="Select*from表名where1=1"’1=1避免所有查询字段为空时出错

ifname<>""then
Sql=Sql&"and姓名like’%"&name&"%’"
endif
ifsex<>""then
Sql=Sql&"and性别=’"&sex&"’"’这个不是模糊查询了
endif
ifcall<>""then
Sql=Sql&"and电话like’%"&call&"%’"
endif
......
在此,你要注意到姓名、性别、电话这三个字段在数据库中的类型应为“文本”类型,否则查询时会出现“数据类型不匹配”错误。
如果三个条件均无输入,点击“查询”时将显示数据库中的所有记录,可能这是你不希望的,可以应该加入一个判断:当三个条件均无输入时,显示“请输入查询条件”,并中断输出到客户浏览器(response.end)例句如下:

ifrequest.form("name")=""andrequest.form("sex")=""andrequest.form("call")=""then
response.write("请输入查询条件(可模糊查询)")
response.end
endif
切记:sql="select*from表名where姓名...电话like..."
必须在一行内输入完,而不能用回车符分段,因为vbs多行被认为是多个语句,这是许多初写者常犯的错误。如果你想分多段写,可以用上面的方法在现有变量基础上逐步增加查询语句的各个组成部分并把它存在同一变量内实现。在封闭引号之前或者在打开引号之后你需要增加空格,这样才能保证字符串连接起来的时候你没有把几个词凑到了一块。

[1][2]下一页

上一篇:Flash+ASP实现电子互动地图在线标...

下一篇:二十八条改善 ASP 性能和外观的技巧

搜百度:条件 语句

相关 条件 语句 的文章:

网友评论全部评论

位网友发表了看法

阅读排行

热门文章

0 0