外贸网站建设

多变量查询的方法

我们经常会遇到多重查询问题,而长长的SQL语句往往让人丈二和尚摸不着头脑。特别是客户端部分填入查询条件时,如用普通方法将更是难上加难。
 
以下巧妙地利用"where 30=30"的恒等式(事实上很多,让它值为真即可)解决此问题。
 
正题
 
'title 信息标题
 
'company 发布信息的用户名称
 
'content 发布详细信息
 
'address 用户地址
 
'email 用户邮箱

 
以上值均由表单提交,然后通过:title=trim(Request.Form("title"))等得到相应的值。
 

 
'下面是VB函数代码
 
Function putinet(putia,putib,putisql)
 
if putib<>"" then '如果客户端没有提交此值,则不会产生相应的SQL语句。
 
putinet=putinet & " and " & putia & " like '%" & putib & "%'"
 
end if
 
sql=putinet
 
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")
 
putinet="select * from mytable where 1=1 "
 
'以下调用上面的函数即可,可以很多个调用(理论上是任意)
 
putinet=sql("subject",subject,sqls)
 
putinet=sql("company",company,sqls)
 
putinet=sql("content",content,sqls)
 
putinet=sql("address",address,sqls)
 
putinet=sql("infomation",infomation,sqls)
 
putinet=sql("note",note,sqls)
 
putinet=putinet & " order by id desc"
 
rs.open putinet,conn,3,2

 
如果没有关键的函数Function putinet(putia,putib,putisql),我们可以想象,需要多少判断的一个接一个的语句!

[深圳网站建设网图文来源于网络,如有侵权,请联系删除]

本站主要关键词:网站建设网站制作网站设计网页设计外贸网站建设网页制作小程序开发