天天看點

lumen中出現Syntax error or access violation: 1055 ‘***‘ isn‘t in GROUP BY

背景

laravel 5.3 以後預設開啟 mysql嚴格模式(​

​strict​

​​)

在mysql在嚴格模式下, 并且開啟了ONLY_FULL_GROUP_BY的情況下,

group by 的字段沒有出現在 select 的語句中會報錯.關閉了嚴格模式就不會報錯.

示例

public static function orders($phase)

{

    return self::select(DB::raw("SUM(orders) as orders"),"type","users_id","name")

                ->groupBy("type","name")

                ->where("phase",$phase)

                ->get();

}

會出現如下錯誤,當然*号内的内容是不同的

Syntax error or access violation: 1055 '***' isn't in GROUP BY

解決方案

​laravel​

​​出現上述錯誤是​

​sql_mode​

​​設定導緻的問題,修改​

​config/database.php​

​​配置檔案的​

​strict => false​

​即可關閉了嚴格模式: