我正在爲房產中介和租戶建立一個網站。租戶可以註冊並填寫他們想要的物業位置,包括街道,城鎮和郵政編碼。一旦他們註冊,這會自動向具有符合這些搜索條件的屬性的代理髮送電子郵件。SQL Query根據用戶輸入查找匹配值
目前我的查詢設置如下,以便它匹配街道,城鎮或郵政編碼。
<%
Dim rspropertyresults
Dim rspropertyresults_numRows
Set rspropertyresults = Server.CreateObject("ADODB.Recordset")
rspropertyresults.ActiveConnection = MM_dbconn_STRING
rspropertyresults.Source = "SELECT * FROM VWTenantPropertiesResults "
'WHERE (ContentStreet = 'Holderness Road') OR (ContentTown = 'Hull') OR (ContentPostCode = 'HU')
rspropertyresults.Source = rspropertyresults.Source& "WHERE (ContentStreet = '" & Replace(rspropertyresults__varReqStreet, "'", "''") & "'"
rspropertyresults.Source = rspropertyresults.Source& "OR ContentTown = '" & Replace(rspropertyresults__varReqTown, "'", "''") & "' "
rspropertyresults.Source = rspropertyresults.Source& "OR ContentTrimmedPostCode = '" & Replace(varPostcode, "'", "''") & "') "
rspropertyresults.Source = rspropertyresults.Source& "AND ((ContentBedRooms >= " & Replace(rspropertyresults__varBedroomsNoMin, "'", "''") & " "
rspropertyresults.Source = rspropertyresults.Source& "AND ContentBedRooms <= " & Replace(rspropertyresults__varBedroomsNoMax, "'", "''") & ") "
rspropertyresults.Source = rspropertyresults.Source& "AND (ContentPrice > = " & Replace(rspropertyresults__varPriceMin, "'", "''") & " "
rspropertyresults.Source = rspropertyresults.Source& "AND ContentPrice <= " & Replace(rspropertyresults__varPriceMax, "'", "''") & ")) " & varSQL & " "
rspropertyresults.Source = rspropertyresults.Source& "ORDER BY ContentPrice " & Replace(rspropertyresults__varSortWay, "'", "''") & " "
rspropertyresults.CursorType = 0
rspropertyresults.CursorLocation = 2
rspropertyresults.LockType = 1
rspropertyresults.Open()
rspropertyresults_numRows = 0
%>
但是,客戶端已要求,而不是隻對其中一個值匹配,它需要以這樣的方式來工作,如果說街道和鎮的比賽,然後通過電子郵件發送一個房地產經紀人,或者城市和郵政編碼匹配,然後發送該物業代理。如你所想,我認爲查詢會變得相當複雜,但我不確定如何最好地設計這樣的查詢。
我想知道是否有人能夠幫助或指向正確的方向嗎?
+1:好的解決方案 - 也許在這種情況下UNION ALL會更好,因爲無論如何你都是按ID分組的? – RedFilter 2009-09-10 13:59:01
Hey Quassnoi, 謝謝你的解決方案。我已經在視圖中試過這個,首先看它是否正確執行。 (我也改變了ID到ContentID)。它執行,但不返回任何結果。 這可能是我有其他干擾結果的東西。我知道肯定有一些數據會匹配2或3個條件。 – doubleplusgood 2009-09-10 13:59:21
'@ OrbMan':對,謝謝。不僅更好,而且需要查詢才能正常工作。 – Quassnoi 2009-09-10 14:03:42