Подсчет столбцов с условием if в запросе - PullRequest
0 голосов
/ 28 мая 2018

Подсчет только столбцов, в которых Buy_Rate больше, чем Sell_Rate.

Мой запрос не соответствует ожидаемому, он приводит меня к ошибке.

$user_id = Auth::user()->id;
$losing_trades_count = FinalTrade::where('user_id', '=', $user_id)->where('buy_rate', '<', 'sell_rate')->get()->count();

Inverse : Если sell_rate больше, чем buy_rate, то только количество столбцов.

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Вы можете использовать whereColumn

$losing_trades_count = FinalTrade::where('user_id', '=', $user_id)
                                 ->whereColumn('buy_rate', '<', 'sell_rate')
                                 ->count();

Также нет необходимости вызывать get(), когда вам нужно count() из построителя запросов

0 голосов
/ 28 мая 2018

laravel eloquent where не поддерживает сравнение столбцов.поэтому вам нужно использовать сырой SQL для сравнения двух столбцов.Вы можете сделать что-то вроде

$user_id = Auth::user()->id;
$losing_trades_count = FinalTrade::where('user_id', '=', $user_id)->whereRaw('buy_rate < sell_rate')->get()->count(); 

надеюсь, это поможет!

...