教您用SQL语句举行模糊查询[MSSQL防范]
本文“教您用SQL语句举行模糊查询[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
下面将为您介绍用SQL语句举行模糊查询的办法,供您参考,假如您在模糊查询方面碰到了问题,无妨一看,相信对您机动利用SQL语句会有所帮忙.
普通写一个简单的模糊查询的SQL语句格局可以以下例:
sql="select * from 表名 where 字段名 like ’%" & request.form("恳求变量") & "%’ "
阐明:1、WHERE 关键词的背面随着用来过滤数据的条件,百分号%是通配符,可以代表多个任何字符,若是下划线_就代表一个肆意字符.
实比方下:
sql="select * from 表名 where 姓名 like ’%"&request.form("name")&"%’ and 性别 like ’%"&request.form("sex")&"%’ and 电话 like
’%"&request.form("call")&"%’ "
上面这条SQL语句利用了三个模糊查询条件:姓名、性别、电话,当然我们还可以用近似
姓名 like ’%"&request.form("name")&"%’
的方法构造更多的条件.这样我们就实现了多条件的模糊查询,实际试一试,问题出来了!!!假如数据库的查询字段都有值的化没问题,但假如是下边这样:
姓名 性别 电话
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多行被认为是多个语句,这是很多初写者常犯的错误.假如你想分多段写,可以用上面的办法在现有变量底子上渐渐增添查询语句的各个构成部份并把它存在同一变量内实现.在封闭引号之前大概在翻开引号之后你需求增添空格,这样才能保证字符串通接起来的时刻你没有把几个词凑到了一块.
以上是“教您用SQL语句举行模糊查询[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |