집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 \'GROUP BY 절에 없는 SELECT 목록의 표현\' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?
MySQL에서 쿼리를 실행하면 sql_mode와 관련된 오류가 발생할 수 있는 경우가 있습니다. 환경. 이러한 오류 중 하나는 다음과 같습니다.
#1055 - Expression of SELECT list is not in GROUP BY clause and contains nonaggregated column this is incompatible with sql_mode=only_full_group_by
이 오류는 GROUP BY 절에 포함되지 않고 집계되지 않은(예: SUM, COUNT 등을 사용하여) 쿼리의 SELECT 목록에 열이 포함된 경우 발생합니다. ). 이 문제를 해결하려면 GROUP BY 절에 집계되지 않은 열을 포함하거나 집계하도록 쿼리를 수정해야 합니다.
제공된 MySQL 쿼리에서:
select libelle, credit_initial, disponible_v, sum(montant) as montant FROM fiche, annee, type where type.id_type=annee.id_type and annee.id_annee=fiche.id_annee and annee = year(current_timestamp) GROUP BY libelle order by libelle asc
비 집계 열 - 집계 열은 disponible_v입니다. 오류를 해결하려면 이를 GROUP BY 절에 추가하세요.
... GROUP BY libelle, disponible_v ...
또는 SUM 또는 AVG와 같은 함수를 사용하여 disponible_v를 집계하세요.
... GROUP BY libelle HAVING SUM(disponible_v) > 0 ...
8.0 이전 MySQL 버전의 경우 , MySQL 구성 파일 /etc/mysql/conf.d/mysql.cnf에서 sql_mode 설정을 조정해야 할 수도 있습니다. 다음 줄을 추가하세요.
[mysqld] sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
구성 파일을 변경한 후 MySQL을 다시 시작하세요.
위 내용은 MySQL에서 \'GROUP BY 절에 없는 SELECT 목록의 표현\' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!