我們經常會遇到多重查詢問題,而長長的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")
conn.open "driver=;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
最簡潔的多重查詢的解決方案
前言 我們經常會遇到多重查詢問題,而長長的sql語句往往讓人丈二和尚摸不著頭腦。特別是客戶端部分填入查詢條件時,如用普通方法將更是難上加難。以下巧妙地利用 where 1 1 的恒等式 事實上很多,讓它值為true即可 解決此問題。正文概要 subject 資訊標題 company 發布資訊的公司名...
ASP實現最簡潔的多重查詢的解決方案
這個函式很關鍵 function sql a,b,sqls if b then 如果客戶端沒有提交此值,則不會產生相應的sql語句。sqls sqls and a like b end if sql sqls end function 呼叫資料庫 set conn server.createobje...
asp下最簡潔的多重查詢的解決方案
最簡潔的多重查詢的解決方案 前言 我們經常會遇到多重查詢問題,而長長的sql語句往往讓人丈二和尚摸不著頭腦。特別是客戶端部分填入查詢條件時,如用普通方法將更是難上加難。以下巧妙地利用 where 1 1 的恒等式 事實上很多,讓它值為true即可 解決此問題。正文概要 subject 資訊標題 co...