나는 부동산 중개업자와 세입자를위한 웹 사이트를 구축 중입니다. 세입자는 Street, Town 및 Postcode를 포함한 등록 정보를 원하는 위치에 등록하고 채울 수 있습니다. 일단 가입하면 검색 기준과 일치하는 등록 정보를 가진 상담원에게 자동으로 이메일을 보냅니다.사용자 입력을 기반으로 일치하는 값을 찾기위한 SQL 쿼리
현재 스트리트, 타운 또는 우편 번호 중 하나와 일치하도록 쿼리를 다음과 같이 설정했습니다.
<%
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 : 좋은 해결책 - 어쨌든 ID별로 그룹화했기 때문에 UNION ALL이이 경우 더 좋을까요? – RedFilter
안녕하세요 Quassnoi, 해결책 주셔서 감사합니다. 나는 이것이 올바르게 실행되는지를보기 위해 먼저 이것을 시도했다. (나는 id를 ContentID로 변경했다.) 실행되지만 결과는 반환하지 않습니다. 결과에 영향을주는 다른 것이있을 수 있습니다. 2 ~ 3 가지 조건과 일치하는 데이터가 분명히 있음을 알고 있습니다. – doubleplusgood
'@ OrbMan' : 맞아요, 고마워요. 뿐만 아니라 쿼리가 올바로 작동하도록 요구됩니다. – Quassnoi