-
[solved] ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.table.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_byDatabase/mysql 2020. 9. 23. 10:15
mysql에서 sql문에 'GROUP BY'를 사용하는데 아래와 같은 에러가 발생했다.
ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.table.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
쉽게 말하자면 sql_mode=only_full_group_by로 되어 있으면
잘못된 GROUP BY 사용을 제한한다.
엄격하게 용도에 맞게 사용 됐을때만 쿼리가 성공한다.
나의 경우 테이블내의 키값이 아닌 컬럼의 값으로 그룹핑을 시도해서 에러가 발생했다.
따라서 아래 명령을 통해 문제를 해결 할 수 있다.
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
또는
my.cnf에 아래 줄을 추가하고 재시작한다.
[mysqld] sql_mode = ""
'Database > mysql' 카테고리의 다른 글