2012-11-20 2 views
1

을 zend_db하고 나는 zend_db 선택 객체 형식으로 쿼리 아래로 변환 할 수 없습니다 :이 같은변환 내가 젠드 함께 일하고 개체 선택 형식

SELECT *,CASE WHEN @score != score THEN @rank := @rank + 1 ELSE @rank END AS rank, 
       @score := score AS dummy_value 
       FROM ( SELECT score,username,ID,firstName,lastName 
       FROM site_members, 
        (SELECT @rank := 0, @score := NULL) AS vars 
        WHERE `status` = 1 AND score > 0 
       ORDER BY score DESC) AS h; 

:

$select = $this -> db -> select(); 
    $select -> from('site_members', array('COUNT(*) AS count')); 
    $select -> where("ID = ?", $memberID, Zend_Db::INT_TYPE); 
    $row = $this -> db -> fetchRow($select); 
+0

나는 큰 생각하지만, 내 대답을 얻을 수 없다 –

답변

1

내가 일한 내 질문과 최고의 답변을 찾았 :

  $inner_query = $this -> db -> select() -> from('site_members', array('score', 'username', 'ID', 'firstName', 'lastName')) 
           -> from(array("vars"=>new Zend_Db_Expr('(SELECT @rank := 0, @score := NULL)'))) 
           -> where("site_members.status = ?",1) 
           -> where("score > 0") 
           -> order(array("score DESC")); 
      $select = $this -> db -> select(); 
      $select ->from(array("h"=>$inner_query),array(new Zend_Db_Expr('*'), 
          new Zend_Db_Expr('CASE WHEN @score != score THEN @rank := @rank + 1 ELSE @rank END AS rank'), 
          new Zend_Db_Expr('@score := score AS dummy_value'))); 
관련 문제