为了账号安全,请及时绑定邮箱和手机立即绑定

我该如何解决这个原始查询

我该如何解决这个原始查询

PHP
一只名叫tom的猫 2022-01-24 09:27:59
我正在尝试使用 laravel db 从我的数据库中获取一些数据并且它抛出错误$most_purchased_day = (int)Data::select('type')                      ->whereDate('created_at', '=', date('d'))                      ->groupBy('type')                      ->orderByRaw('COUNT(*) DESC')                      ->first()->network_id;$most_purchased_day = (int)Data::select('type')                     ->whereDate('created_at', '=', date('d'))                     ->groupBy('type')                     ->orderByRaw('COUNT(*) DESC')                     ->first()->network_id;我希望输出是基于网络 ID 购买最多的商品
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

未检索到第一个用户,因为碳实例created_at不匹配date('d') 更改您的代码以使用today()帮助程序


$most_purchased_day = (int)Data::select('type')

                      ->whereDate('created_at', '=', today())

                      ->groupBy('type')

                      ->orderByRaw('COUNT(*) DESC')

                      ->first()->network_id;

假设今天创建了一个 Eloquent 模型


App\Data {

     id: 1,

     created_at: "2019-09-22 13:15:19",

     updated_at: "2019-09-22 13:15:19",

   }

date('d') 只返回一个整数,即当月 (22) 的天数,不能匹配2019-09-22 13:15:19见PHP:date


如果您想获取在任何一天创建的记录,即当天的编号,而不管月份和年份

使用whereDay


$most_purchased_day = (int)Data::select('type')

                      ->whereDay('created_at', '=', date('d'))

                      ->groupBy('type')

                      ->orderByRaw('COUNT(*) DESC')

                      ->first()->network_id;

来自Laravel 文档


whereDate / whereMonth / whereDay / whereYear / whereTime


该whereDay方法可用于将列的值与一个月中的特定日期进行比较:


$users = DB::table('users')

                ->whereDay('created_at', '31')

                ->get();


查看完整回答
反对 回复 2022-01-24
  • 1 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信