DB/MySQL

[MySQL] Error : Expression #1 of SELECT list is not in GROUP BY...

고해주 2023. 3. 14. 16:13

 

Error

Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'tp.menu.menu_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

 

 

 

원인 

select 목록, having 조건 또는 order by 목록이 group by 절에 이름이 지정되지 않았거나 GROUP BY column에 primary key나 unique key 처럼 고유하게 존재하여 집계되지 않는 column을 참조하면 쿼리를 거부함

 

 

 

해결

SQL_MODE에서 ONLY_FULL_GROUP_BY를 제거하면 됨

 

SQL_MODE를 조회한 후 해당 값에서 'ONLY_FULL_GROUP_BY'만 제거한 후 세팅해주면 된다

-- SQL_MODE 조회
SHOW VARIABLES LIKE 'SQL_MODE';

-- SQL_MODE 세팅
SET SESSION sql_mode = '';

 

 

SQL_MODE 에 대한 자세한 내용

2023.03.14 - [DB/MySQL] - [MySQL] SQL_MODE

 

[MySQL] SQL_MODE

SQL_MODE MySQL서버의 시스템 변수 각 클라이언트마다 다른 sql 모드를 적용이 가능 조회 방법 SHOW VARIABLES LIKE 'SQL_MODE'; (출력) 설정 방법 SET GLOBAL sql_mode = ‘modes’; SET SESSION sql_mode = ‘modes’; - ONLY_FULL

hjko523.tistory.com

 

'DB > MySQL' 카테고리의 다른 글

[MySQL] SQL_MODE  (0) 2023.03.14