백엔드/DB

[sql] functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

작은소행성 2023. 1. 4. 23:47
잘못된 쿼리를 사용해서 생기는 오류이므로 서버 설정보다 쿼리로 해결할 수 있도록 하는게 좋다.

 

쿼리로 해결하기

  쿼리 상의 GROUP BY 절을 따로 분리해 준다.

 

 

서버 설정으로 해결하기

MySQL 실행 시 only_full_group_by 옵션의 활성화/비활성화를 비활성화 한다.

 

1. 
mysql 설정 상태 확인

> select @@sql_mode;


2. 
mysql 설정이 되있음을 확인 (아래 출력 처럼 only_full_group_by이 나오면 설정이 필요)

> | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,                                                                                        DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 


3. 
my.cnf 설정파일의 해당 부분을 추가 (linux 기준 /etc/my.cnf)

[mysqld]에 아래 설정 추가

> sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


4.
mysql 재기동

> service mysqld restart

 

반응형