【问题标题】:relevent laravel query for postgres working query用于 postgres 工作查询的相关 laravel 查询
【发布时间】:2021-03-22 03:11:49
【问题描述】:

我在 postgres 工作

select * from "prospects_audit_dump" where date_created::date between ['2021-03-01' and '2021-03-15'] and ( ("parent_id" in ('4747f33c-764c-11eb-b43f-0265ed7510c2', '771782c0-8197-11eb-8d62-020683bef092', '8c400d42-2470-11e9-917b-066c2def7d44') and "after_value_string" = 'MGL' and "before_value_string" != 'Open_inbound') or ("before_value_string" = 'Open_inbound' and "after_value_string" = 'MGL') or ("before_value_string" = 'MGL' and "after_value_string" = 'MQL'));

我已尝试将其转换为 laravel 查询

$audit_table_result=DB::table($type.'_audit_dump')->whereBetween(DB::raw('date_created::date'),['2021-03-01','2021-03-15');
  $audit_table_result=$audit_table_result->where(function ($query) use ($meeting_ids) {
    return $query->whereIn('parent_id', $meeting_ids)->where('after_value_string', 'MGL')->where('before_value_string', '!=', 'Open_inbound');
    }) ->orWhere(function ($query) {
    return $query->where('before_value_strings', 'Open_inbound')->where('after_value_string', 'MGL');
    })
    ->orWhere(function ($query) {
    return $query->where('before_value_string', 'MGL')->where('after_value_string', 'MQL');
    });
   $audit_table_result=$audit_table_result->get();

但在between '2021-03-01' and '2021-03-15' and select * from "prospects_audit_dump" 之后缺少外括号,其中 date_created::date 在 '2021-03-01' 和 '2021-03-15' 和 ( ) 之间; 如何更改我的 laravel 查询。

【问题讨论】:

    标签: laravel postgresql laravel-5


    【解决方案1】:

    我认为问题出在这里:

    $audit_table_result=DB::table($type.'_audit_dump')->
    whereBetween(DB::raw('date_created::date'),['2021-03-01','2021-03-15');
    

    whereBetween 的参数应该在数组中,你错过了右括号,应该是:

    $audit_table_result=DB::table($type.'_audit_dump')->
    whereBetween(DB::raw('date_created::date'),['2021-03-01','2021-03-15']);
    

    【讨论】:

      【解决方案2】:

      替换以下代码行:

      $audit_table_result=DB::table($type.'_audit_dump')->whereBetween(DB::raw('date_created::date'),['2021-03-01','2021-03-15');
      

      以下内容:

      $audit_table_result=DB::table($type.'_audit_dump')->whereBetween(DB::raw('date_created::date'),['2021-03-01','2021-03-15']); 
      // you missed the closing square bracket `]`
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-21
        • 2019-04-19
        • 2020-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-07
        • 2023-03-10
        相关资源
        最近更新 更多