본문 바로가기

Server/PHP

[Laravel][Error] Syntax error or access violation: 1055 Expression

laravel 쿼리빌더의 groupBy() 함수 사용 시 
Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column .... 와 같은 오류가 발생해 서버 내 config/database.php 파일 수정.

 

[수정사항]
connections => mysql => strict 값을 true->false 로 변경
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', 3306),
...
'strict' => env('DB_STRICT_MODE', false),
'engine' => env('DB_ENGINE', null),
'timezone' => env('DB_TIMEZONE', '+00:00'),
],

 

위는 lumen 프레임 워크를 쓸 때 해결법이고, laravel 도 똑같은 파일의 strict 값을 변경해주면 groupBy 쿼리빌더 사용시 발생하는 오류는 해결된다.

+) 얘도 database.php파일만으로는 오류해결이 안돼서 혹시 하고 이전 게시글처럼 config.php파일 가니까 여기도 strict 설정값이 지정돼있었음... 바꿔주니 해결은 됐다. 근데 왜 캐시파일이 저런거지.. 음...