网络编程
位置:首页>> 网络编程>> Asp编程>> 最简洁的SQL多重查询的解决方案

最简洁的SQL多重查询的解决方案

作者:朱继山  发布时间:2005-09-12 16:31:00 

标签:查询,sql

 [前言]
  我们经常会遇到多重查询问题,而长长的SQL语句往往让人丈二和尚摸不着头脑。特别是客户端部分填入查询条件时,如用普通方法将更是难上加难。
  以下巧妙地利用"where 1=1"的恒等式(事实上很多,让它值为TRUE即可)解决此问题。
  
  [正文概要]
  
  'subject 信息标题
  'company 发布信息的公司名称
  'content 发布信息的内容
  'address 公司地址
  'infomation 公司简介
  'note 相关说明
  以上值均由FORM提交,然后通过:subject=trim(Request.Form("subject"))等得到相应的值。 
   
  

<%  
  ’这个函数很关键!---------------------------  
  Function sql(a,b,sqls)  
  if b<>"" then ’如果客户端没有提交此值,则不会产生相应的SQL语句。  
  sqls=sqls & " and " & a & " like ’%" & b & "%’"  
  end if  
  sql=sqls  
  End Function  
  ’-----------------调用数据库  
  Set conn=Server.CreateObject("ADODB.Connection")  
  DBpath=Server.MapPath("/database/mydb.mdb")  
  Conn.Open "driver={Microsoft Access Driver (*.mdb)};pwd=;dbq=" & DBpath  
  Set rs=Server.CreateObject("ADODB.Recordset")  
  sqls="select * from mytable where 1=1 "  
  ’以下调用上面的函数即可,可以很多个调用(理论上是任意)  
  sqls=sql("subject",subject,sqls)  
  sqls=sql("company",company,sqls)  
  sqls=sql("content",content,sqls)  
  sqls=sql("address",address,sqls)  
  sqls=sql("infomation",infomation,sqls)  
  sqls=sql("note",note,sqls)  
  sqls=sqls & " order by id desc"  
  rs.open sqls,conn,3,2  
  %> 


   
  [结束语]
  如果没有关键的函数Function sql(a,b,sqls),我们可以想象,需要多少判断的一个接一个的语句!

0
投稿

猜你喜欢

  • 下面就是解决方案: 1- From the command prompt, stop isqlplus: c:\>isqlplusct
  • 现有问题当前的项目中包括一个6200万行、500多列的表。其中的数据来自SQL Server以外,它们到达的表中有一个标识主键,所有剩下的列
  • 在SQL Server数据库管理中,针对分析服务Analysis Services 的性能优化必不可少,这里我们将学习到使用DMV来进行An
  • 介绍:SQL Server 2008变更数据捕获SQL Server 2008的CDC函数读取激活了CDC的每个表所关联的事务日志来记录系统
  • 前两天,编辑建议我去当当和卓越申请个用户,在网站上放上我的书的链接,这样还可以拿到一些反点儿,于是我兴冲冲地跑到几个网站上去看,却只在卓越(
  • (1)更有意义的搜索 数据可被XML唯一的标识。没有XML,搜索软件必须了解每个数据库是如何构建的。这实际上是不可能的,因为每个数据库描述数
  • 如果你已经理解了block formatting contexts那么请继续,否则请先看看这篇文章。Overflow能够做一些很牛掰的事情,
  • 用ASP生成XBM数字图片(可用来生成验证码)XBM图片是一个纯文本的文件,可以用ASP来自动生成。可以用它来使用网站登陆的验证码;我们用记
  • 在使用操作XML文件时,我们可以使用Load方法直接加载xml文件即可,在ie和ff下通用。但是是XML字符串,则在两种浏览器下就会有所不同
  •     Dreamweaver MX 2004的强大功能以及更加完善的人性化设置已经深受大家喜爱。在此笔者就谈
  • 1.delete不能使自动编号返回为起始值。但是truncate能使自动增长的列的值返回为默认的种子 2.truncate只能一次清空,不能
  • 本次薯片会一改以往低调、沉稳之作风,先瑜伽团美女show上阵,再是以臭为首的吃喝团上阵,两轮下来大家情绪Hight到了极点,自然讨论的时候思
  • Facebook的网站速度做为最关键的公司任务之一。在2009年,我们成功地实现了Facebook网站速度提升两倍 。而正是我们的工程师团队
  • 在asp中利用excel的一个方法是将excel文件作为一个数据库进行链接,然后的操作和对access数据库操作类似。但是这个方法不是总能有
  • 选择了MySQL的安装版本后,要做的第二项决策是你是使用源码分发版还是二进制分发版。大多数情况,如果你的平台上已经有了一个二进制分发版,你可
  • 什么是PHPPHP代表了"超文本处理器",这意味着你必须知道,它是一种服务器端的处理语言,且以HTML的形式出现。它最常
  • 自从2005年8月11日阿里巴巴宣布收购雅虎中国的全部资产后,做为阿里巴巴集团的创始人马云心里盘算的事应该是如何把雅虎中虎整合进阿里巴巴这个
  • 不论是做WEB设计还是做交互模型,最快确立创意与设计效果的最好办法就是用笔在纸上绘制出来。不过从事IT行业的人很少一部分是来自美术学院。当然
  • 在SQL Server 2008里安装审计,步骤如下:1. 给每个SQL Server 2008具体实例创建一个SQL Server审计2.
  • 在计算机普及的现代设计领域,文字的设计的工作很大一部分由计算机代替人脑完成了(很多平面设计软件中都有制作艺术汉字的引导,以及提供了数十上百种
手机版 网络编程 asp之家 www.aspxhome.com