在查询中使用if conidition计算列

时间:2018-05-28 06:58:40

标签: laravel laravel-query-builder

仅计算其中Buy_Rate大于Sell_Rate的列。

我的查询未按预期生成,这导致我错了。

$(".btn-vote").click(function(){
//bla bla
});
$(".btn-vote").dblclick(function(){
//bla bla
});

反向:如果sell_rate超过buy_rate,则只计算列数。

2 个答案:

答案 0 :(得分:2)

您可以使用whereColumn

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

此外,当您需要来自查询构建器的get()时,无需致电count()

答案 1 :(得分:1)

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(); 

希望这有帮助!

相关问题