2

什么是正确的语法来查找计划中节省的资金总额,其中status要么abanadoned要么completed

$total = self::sum([
    'column' => 'amount_saved_so_far',
    'conditions' => 'status = "completed" AND user_id = :user_id:',
    //find plans with a status of abandoned as well
    'bind' => ['user_id' => $userId]
]);
4

1 回答 1

3

你可以简单地做,这是非常好的解决方案:

$total = self::sum([
    'column' => 'amount_saved_so_far',
    'conditions' => '(status = "completed" OR status = "abanadoned") 
                     AND user_id = :user_id:',
    'bind' => ['user_id' => $userId]
]);

或者另一种选择是使用数组绑定:

$total = self::sum([
    'column' => 'amount_saved_so_far',
    'conditions' => 'status IN ({vars:array}) AND user_id = :user_id:',
    'bind' => [
        'vars' => ['completed', 'abanadoned'],
        'user_id' => $userId
    ]
]);

如果您有更多 IN 子句的值,第二个选项会更优雅、更实用。

于 2016-09-06T08:36:27.977 回答