2013-10-01 43 views
0

嘿,我有一個使用IN關鍵字的查詢。我如何將它轉換爲zend select查詢?Zend_Db_Table_Abstract和MySQL IN關鍵字

這是原始的SQL形式的查詢:

SELECT 
      rs_credit_score, 
      rs_fraud_score 
FROM 
      provenir_instance_response 
WHERE 
      application_number = @in_applcation_number 
AND channel = @in_channel 
AND final_decision_reason IN (
      'Failed CallCredit Delphi ID Check', 
      'Failed Delphi KORules', 
      'Credit Score Cut Matrix Failure', 
      'Fraud Score Cut Matrix Failure', 
      'Teletrack Rule Failure' 

和這裏是我在Zend公司迄今:

public function scoreQuery($memId, $channel){ 
    //Build Query 
    $select = $this->select(); 
    $select->from('provenir_instance_response', array('rs_credit_score', 'rs_fraud_score')); 
    $select->where('application_number=?', $memId); 
    $select->where('channel=?', $channel); 
    $select->where('final_decision_reason IN Failed CallCredit Delphi ID Check'); 
    $select->where('final_decision_reason IN Failed Delphi KORules'); 
    $select->where('final_decision_reason IN Credit Score Cut Matrix Failure'); 
    $select->where('final_decision_reason IN Fraud Score Cut Matrix Failure'); 
    $select->where('final_decision_reason IN Teletrack Rule Failure'); 
    $result = $this->fetchAll($select); 
    return $result; 
} 

或者,也許這一點?

public function scoreQuery($memId, $channel){ 
    //Build Query 
    $select = $this->select(); 
    $select->from('provenir_instance_response', array('rs_credit_score', 'rs_fraud_score')); 
    $select->where('application_number=?', $memId); 
    $select->where('channel=?', $channel); 
    $select->where('final_decision_reason IN (
    \'Failed CallCredit Delphi ID Check\', 
     \'Failed Delphi KORules\', 
     \'Credit Score Cut Matrix Failure\', 
     \'Fraud Score Cut Matrix Failure\', 
     \'Teletrack Rule Failure\' 

    )'); 
    $result = $this->fetchAll($select); 
    return $result; 
} 

我認爲應該是這樣嗎?

public function scoreQuery($memId, $channel){ 
    //Build Query 
    $select = $this->select(); 
    $select->from('provenir_instance_response', array('rs_credit_score', 'rs_fraud_score')); 
    $select->where('application_number=?', $memId); 
    $select->where('channel=?', $channel); 
    $select->where('final_decision_reason IN (?)', array(
     'Failed CallCredit Delphi ID Check', 
     'Failed Delphi KORules', 
     'Credit Score Cut Matrix Failure', 
     'Fraud Score Cut Matrix Failure', 
     'Teletrack Rule Failure' 
    )); 
    $result = $this->fetchAll($select); 
    return $result; 
} 

我有沒有關於正確或重構我的代碼?

感謝

彌敦道:)

回答

0
public function scoreQuery($memId, $channel){ 
//Build Query 
$select = $this->select(); 
$select->from('provenir_instance_response', array('rs_credit_score', 'rs_fraud_score')); 
$select->where('application_number=?', $memId); 
$select->where('channel=?', $channel); 
$select->where('final_decision_reason IN (?)', array(
    'Failed CallCredit Delphi ID Check', 
    'Failed Delphi KORules', 
    'Credit Score Cut Matrix Failure', 
    'Fraud Score Cut Matrix Failure', 
    'Teletrack Rule Failure' 
)); 
$result = $this->fetchAll($select); 
return $result; 

}