实现多条件模糊查询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语句的更多相关文章
- asp下实现多条件模糊查询SQL语句
常写一个简单的模糊查询的SQL语句格式可以如下例: sql="select * from 表名 where 字段名 like ’%" & request.form(&quo ...
- 模糊查询sql语句条件是中文在后台从数据库查不到结果,是英文和字母就可以,而且统一编码为UTF-8了!!!
4.在mysql安装目录下打开my.ini文件 5.保存,接着打开电脑的服务选项,将MySQL 重启 6. 重启后重新进入dos 窗口的MySQL ,输入show variables like &qu ...
- 查询拼接SQL语句,多条件模糊查询
多条件查询,使用StringBuilder拼接SQL语句,效果如下: 当点击按钮时代码如下: private void button1_Click(object sender, EventArgs e ...
- 多表查询sql语句
多表查询sql语句 1 --解锁SCOTT用户 2 alter user scott account unlock 3 --检索指定的列 4 select job,ename,empno from e ...
- JSP+Servlet+javabean+oracle实现页面多条件模糊查询
之前写过一篇JSP+Servlet+javabean+mysql实现页面多条件模糊查询 使用的是mysql进行的分页查询,mysql用limit控制,而oracle则是用rownum,今天第一次写or ...
- mongoose多条件模糊查询实例
mongoose多条件模糊查询 这是今天手头项目中遇到的一个问题,关于mongoose如何实现类似于SQL中 nick LIKE '%keyword%' or email LIKE '%keyword ...
- 查询sql语句所花时间
--1:下面这种是SQL Server中比较简单的查询SQL语句执行时间方法,通过查询前的时间和查询后的时间差来计算的: declare @begin_date datetime declare @e ...
- 跨服务器查询sql语句样例
若2个数据库在同一台机器上:insert into DataBase_A..Table1(col1,col2,col3----)select col11,col22,col33-- from Data ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架 ...
随机推荐
- Linux下protobuf的编译与安装【各种奇葩问题】
1.下载源码 首先,从github上下载protobuf的源码,地址:https://github.com/google/protobuf,我选择下载2.5.0版本. 2.编译protobuf 2.1 ...
- 一步一步学习Vue(六)
本篇继续介绍vue-router,我们需要要完成这样个demo:<分页显示文章列表>:这里我们以博客园首页列表为例简化处理: 按照上图框选所示,简单分为蓝色部分文章组件(ArticleIt ...
- 决策树(ID3 )原理及实现
1.决策树原理 1.1.定义 分类决策树模型是一种描述对实例进行分类的树形结构.决策树由结点和有向边组成.结点有两种类型:内部节点和叶节点,内部节点表示一个特征或属性,叶节点表示一个类. 举一个通俗的 ...
- jquery 禁止herf跳转,并执行相应的js代码
<a class="oh_btn bg_3" href="javascript:void(0);" onclick="myfun(this)&q ...
- swift 3.0 基础练习 面向对象 类的扩展
要求 为NSString类添加split功能 为NSString类添加一个函数func split(splitStr: NSString)-> [NSString],split是把字符串以特定的 ...
- 【css】border-image
1. border-image 一个新css3 样式 给边框增加图片,还可以拉升 或重复图片 round 为重复 sketch 为拉升 border: 15px solid transparent; ...
- 【Python】debug工具-pdb(转)
Debug功能对于developer是非常重要的,python提供了相应的模块pdb让你可以在用文本编辑器写脚本的情况下进行debug. pdb是python debugger的简称. 常用的一些命令 ...
- Excel 一键上传到数据库
<a class="edit" id="batchImport"> 批量导入 </a> js代码弹窗: $("#bat ...
- Charles录制App的接口har文件
Charles录制App的接口har文件 如果我们想录制我们自己App后台请求接口的信息,并生成har文件,要怎么做呢?其实很简单,就是通过Charles,让手机的访问请求走这个Charles代理就行 ...
- 读论文系列:Deep transfer learning person re-identification
读论文系列:Deep transfer learning person re-identification arxiv 2016 by Mengyue Geng, Yaowei Wang, Tao X ...