0
내가 쿼리를 작성하는 것을 시도하고있다 WHERE에서 확인이 지금까지의 WHERE
절입니다 :조건 절
WHERE (s.subject_name LIKE '%$keyword%' OR
c.city_name LIKE '%$keyword%' OR
o.option_name LIKE '%$option%' OR
d.district_id = $districtId OR
c.city_id = $cityId
)
내 실제 조건은 다음과 같습니다
$keyword
는 항상 값을 보유해야한다. 다른 3 수 없습니다.- 값이
$keyword
인 경우$keyword
과subject_name
또는city_name
이 일치해야합니다. $optional
가 값을 가지고 있다면, 반환 된 레코드$keyword
일치해야하고$cityId
가있는 경우$districtId
에 값이$option
- 경우, 결과는 3 개 변수 값 (
$keyword
,$option
,$districtId
) 마지막 - 일치해야 값이 다른 3과 함께 반환 된 결과는 4 개의 변수 값 모두와 일치해야합니다.
이러한 조건은 내 검색 페이지에서 가져온 것입니다. $keyword
은 텍스트 상자의 값이고 검색을 시작하려면 키워드가 필요합니다. 그것이 내가 항상 가치가 있다고 말한 이유입니다. 다른 3 개의 값은 필요할 때 항목을 선택할 수있는 선택 상자에서옵니다.
나는 그 쿼리를 만들려고했다. 그러나 나는 실제로 WHERE
절과 혼동합니다. 위 코드는 지금까지 WHERE
절에서 왔습니다. 하지만 원하는 결과를 얻을 수 없습니다.
WHERE (
(s.subject_name LIKE '%$keyword%' OR c.city_name LIKE '%$keyword%')
AND ('$option' = '' OR (
o.option_name LIKE '%$option%' AND (
'$districtId' = '' OR (
d.district_id = $districtId AND (
'$cityId' = '' OR c.city_id = $cityId
)
)
)
)
)
그러나이 훨씬 차선입니다 : 당신이 순수 SQL에서이를 달성하려면
원하는 결과는 무엇이며 geT는 무엇입니까? –
http://stackoverflow.com/questions/5540416/how-to-ignore-a-condition-in-where-clause?rq=1 –
출력이 5 개 중 하나라도 일치해야하는 경우 – ugnuku