laravelgroupby正在我的本地服务器上工作,但不是在live服务器上

5cnsuln7  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(331)

我正在使用groupby()对要在图形中显示的数据进行分组。它在我的localhost上工作,但是当我将代码推送到live站点时,它抛出的不是错误分组。
错误。
sqlstate[42000]:语法错误或访问冲突:1055“dds\u sa.appointments.date\u time”不在group by中
代码:

public function dailyReports(){
     return DB::table('appointments')
        ->select(DB::raw("
        sum(case when status = 'scheduled' then 1 else 0 end) as scheduled,
        sum(case when status = 'complete' then 1 else 0 end) as complete,
        sum(case when status = 'sold' then 1 else 0 end) as sold,
        DATE_FORMAT(date_time,'%W %M %e %Y') as date"))
        ->groupBy('date')
        ->orderBy('date_time')
        ->get();
}

.环境

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=db_name

DB_USERNAME=user_name

DB_PASSWORD=db_pass

db默认设置:

'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

有谁能给我指点解决办法吗?

slmsl1lt

slmsl1lt1#

mysql有 ONLY_FULL_GROUP_BY 启用。您可以使用以下命令禁用它:

mysql > SET sql_mode=(SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''));

要查看已启用模式的列表,请运行:

mysql > SELECT @@sql_mode

在配置中,还要更改:

'strict' => false,

相关问题