You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel条件计数查询异常:需修正交易记录统计逻辑

解决Laravel Eloquent统计交易记录的条件错误问题

嘿,我一眼就发现问题所在啦——你需要统计buy_rate大于sell_rate的交易记录,但当前代码里的查询条件写反了,还有可以优化的小细节哦。

问题根源

你现在的代码用了where('buy_rate', '<', 'sell_rate'),这其实是在统计buy_rate小于sell_rate的记录,刚好和你的需求相反。另外,get()->count()会先把符合条件的所有记录加载到内存中再统计数量,不如直接调用count()方法,这样数据库层面就会完成统计,性能更优。

正确的统计代码(buy_rate > sell_rate)

这才是符合你需求的查询:

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

反向统计逻辑(sell_rate > buy_rate)

如果之后需要统计sell_rate大于buy_rate的记录(也就是你现有代码原本想要实现的逻辑),可以用这个优化后的版本:

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

小提示:Laravel的where方法在处理等于条件时,可以省略第三个参数,直接写成where('user_id', $user_id),代码会更简洁哦~

内容的提问来源于stack exchange,提问作者user9752285

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:16:18