울음참고 개발공부
article thumbnail
728x90

상황

 

새로운 로컬에서 사용할 개발환경을 다시 맞추었다 ( mysql 설치, intelliJ 설치, java 설치 등) 

 

프로젝트를 클론한 후, 실행 시 기존에 문제 없던 group by 절에서 문제가 발생하였다. 

 

쿼리문엔 문제가 없는데 왜 일까?


오류 내용

 

### Cause: java.sql.SQLSyntaxErrorException: 

Expression #10 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'emoticonshop.el.like_id'

which is not functionally dependent on columns in GROUP BY clause;

 

nested exception is java.sql.SQLSyntaxErrorException:

Expression #10 of SELECT list is not in GROUP BY clause and contains nonaggregated column 

'emoticonshop.el.like_id' which is not functionally dependent on columns in GROUP BY clause; 

this is incompatible with sql_mode=only_full_group_by] with root cause


원인 

 

sql_mode 에서 only_full_group_by 절이 어쩌구.. 

 

sql_mode 를 확인해 보자 

 

// sql_mode 확인 
show variables like 'sql_mode'

 

 

 

 

다음과 같이 sql_mode 에 GROUP_FULL_GROUP_BY 가 존재하는데

 

의미인 즉슨,

group by 절을 사용할 경우, 모든 컬럼을 사용해야한다는 것이다.

 

언제 저런 옵션이 ... ? ( 새로 설치하며 dafalut 값으로 설정되었나 싶다 )

 

group by 절을 모두 바꿔줄 순 없으므로 설정을 변경해보자 

 

 

 

 

해결 

 

GROUP_FULL_GROUP_BY 만 비활성화 하자 

 

// 해당옵션만 비활성화
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

 

 

다시 확인해보면 sql_mode 에서 사라진 모습을 볼 수 있다.

 

 

 

 


 

성공!! 

 

db 와 연동이 잘 되어 값을 받아볼 수 있게 되었다. 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!