Develop/DB
only_full_group_by 에러 해결
크레이지제이
2018. 7. 4. 17:40
반응형
mysql
+그룹별로 처음 나오는 하나의 줄만 뽑아낼때
ex) CAT_ID가 같은 것들끼리 묶어서 그룹별 처음으로 나온 레코드만 그룹 대표로 하나씩 추출한다.
select * from TABLE_A group by CAT_ID ;
그룹 내에서 어떤 키로 소팅하여 최신 값을 뽑는 경우, min, max 함수등을 이용하거나 미리 order by로 정렬 후 group by로 한다.
ex)
select * from (select * from TABLE_A order by NAME desc) a group by a.CAT_ID ;
select CAT_ID, min(NAME) from TABLE_A group by CAT_ID ;
+ group by 에러
only_full_group_by 에러가 발생.
=> mysql 5.7이상 부터 group by로 select 할 때 다른 값들이 있는 컬럼들을 조회하면 에러 발생.
처음 나온 것들을 자동으로 선택하여 조회하게 하려면 서버 설정을 바꿔주어야 한다.
/etc/mysql/my.cnf
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
위와 같이 설정을 추가하여 서비스 재시작
service mysql restart