2016-09-06 7 views
2

Что бы правильный синтаксис найти сумму сэкономленных денег в планах, где status либо abanadoned или completed:Как реализовать несколько условий для одного столбца таблицы в PhalconPHP

$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] 
]); 

ответ

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.

+1

Вы забыли часть связывания в своем первом фрагменте – Luke

+0

Разделили пример, чтобы показать только важные части. –

+2

Как ответ на вопрос фалконист-новичков, я бы опубликовал полный код. Это все еще довольно коротко. Но это только мое мнение. Ваш ответ - ваши правила – Luke

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