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

时间:2008-03-02 15:51:00 

我们经常会遇到多重查询问题,而长长的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),我们可以想象,需要多少判断的一个接一个的语句!

标签:sql,查询,数据库
0
投稿

猜你喜欢

  • Excel VBA连接并操作Oracle

    2009-08-08 22:58:00
  • pandas中的ExcelWriter和ExcelFile的实现方法

    2023-09-20 00:10:36
  • 用python生成一张壁纸实例代码

    2022-06-06 10:26:51
  • PHP+jQuery+Ajax实现多图片上传效果

    2024-05-22 10:05:59
  • Python入门开发教程 windows下搭建开发环境vscode的步骤详解

    2022-04-29 00:56:55
  • 浅谈django中的认证与登录

    2023-02-22 18:18:03
  • Python多进程写入同一文件的方法

    2023-09-08 10:20:24
  • python3.0 模拟用户登录,三次错误锁定的实例

    2022-07-23 01:35:48
  • mysql-8.0.15-winx64 使用zip包进行安装及服务启动后立即关闭问题

    2024-01-23 05:58:37
  • 使用Python第三方库pygame写个贪吃蛇小游戏

    2021-05-19 11:08:37
  • 一篇文章搞懂Python反斜杠的相关问题

    2021-11-26 17:45:19
  • HTML5 第二份草案发布

    2008-06-17 17:42:00
  • Python绘制词云图之可视化神器pyecharts的方法

    2022-12-08 14:38:44
  • tkinter使用js的canvas实现渐变色

    2024-02-24 20:46:47
  • PHP获取特殊时间戳的方法整理

    2023-05-25 00:47:36
  • .Net Core SDK命令介绍及使用

    2024-05-13 09:16:00
  • 查询SQLServer启动时间的三种方法

    2024-01-15 18:15:42
  • Django如何实现RBAC权限管理

    2021-05-20 19:14:27
  • Navicat For MySQL的简单使用教程

    2024-01-17 12:22:02
  • javascript异步处理工作机制详解

    2024-04-10 13:58:36
  • asp之家 网络编程 m.aspxhome.com