繁体   English   中英

Zend_Db_Table_Abstract和MySQL IN关键字

[英]Zend_Db_Table_Abstract and MySQL IN Keyword

嘿,我有一个使用IN关键字的查询。 如何将其转换为zend select查询?

这是原始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;
}

我是否正确,还是如何重构我的代码?

谢谢

内森:)

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;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM