2012-10-18 2 views
0

먼저 질문을 설명하고 문제에 대한 해결책을 설명하지 마십시오. (분명히 많은 사람들이 올 것이지만 깨끗한 코드로 문제를 해결하는 방법을 모르겠다.)필터가있는 사용자 지정 쿼리 작성기 디자인

Q : MySQL 데이터베이스를 가지고 있고 여러 조건 및/또는 조건을 기반으로 쿼리하고 싶습니다. 예. 여기서, 컬럼 1 = 3

if(column1) 
$query->where(conditions); 
if(column2) 
$query->where(conditions); 
. 
. 
. 
if(columnn) 
$query->join(some params) 
     ->where(conditions); 

또는

여러 함수를 생성하고 데이터를 전달하는 두 번째 방법은 (i PHP의 젠드 쿼리 빌더를 사용하고 같은) "구간 %"

간단한 해결책을 좋아하지 열 2 그들을 통해.

어느 것이 더 나은 구현입니까? 동일한 기사가 있습니까?

답변

0

귀하의 where 절은 다음과 같아야합니다

where 
    (:p1 is null or col1 = :p1) 
    or (
     (:p2 is null or col2 = :p2) 
     and 
     (:p3 is null or col3 like '%:p3') 
    ) 

:p이 매개 변수입니다. 이 매개 변수를 지정하지 않으면 null으로 전달하십시오.

+0

아주 진실하다, 나는 그것의 올바른 방법 또는 거기에 동일한 디자인 옵션이 될 수 있는지 정말 묻고 싶었어. – amitchhajer

관련 문제