2013-10-01 4 views
0

Эй У меня есть запрос, который использует ключевое слово IN. Как я могу перевести это на запрос выбора zend?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' 

и вот что я имею в Зенд до сих пор:

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; 
} 

Есть ли у меня это право или как будет реорганизовывать мой код?

Благодаря

Nathan :)

ответ

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; 

}

Смежные вопросы