2014-09-30 1 views
0

페이지에서 거의 동일한 쿼리를 세 번 호출하는 PHP 페이지가 있는데이를 사용하는 것이 더 빠른 방법이 있는지 알고 싶습니다. 3 개의 별도 인스턴스.비슷한 쿼리를 한 페이지에서 세 곳으로 호출하는 가장 효율적인 방법

쿼리는 본질

select * from dbo.function('foo','bar') 
where userid = $userid 
and status = 'Yes' 

select * from dbo.function('foo','bar') 
where userid = $userid 
and status = 'No' 
and value >= 0 

select * from dbo.function('foo','bar') 
where userid = $userid 
and status = 'No' 
and value < 0 

때마다 내가 다른 테이블의 데이터를 표시하고있어에,하지만, 데이터베이스를 세 번 쿼리보다 더 효율적인 방법이 있다면보고 싶었어요.

답변

0

함수를 작성하면 작업이 수행됩니다. 이렇게하면 다음과 같은 작업을 수행 할 수 있습니다.

function foo($id,$status='No',$value='',$sign=''){ 
    $value = (string) $value; 
    $table = 'table_name'; 
    $allowedSigns = array('=','>','<','>=','<='); 
    $query = "select * from %s where userid = '%s' and status = '%s'"; 
    if(isset($value) and $value!='' and in_array($sign,$allowedSigns)){ 
     $query .= " and value %s '%d'"; 
     $query = sprintf($query,$table,$id,$status,$sign,$value); 
    }else{ 
     $query = sprintf($query,$table,$id,$status); 
    } 
    return $query; 
} 
관련 문제