
MySQL에서 "GROUP BY 절에 없는 SELECT 목록의 표현식" 오류를 해결하는 방법
MySQL에서 쿼리를 실행하면 sql_mode와 관련된 오류가 발생할 수 있는 경우가 있습니다. 환경. 이러한 오류 중 하나는 다음과 같습니다.
1 | #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 쿼리에서:
1 2 3 4 5 6 | 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 절에 추가하세요.
1 2 3 | ...
GROUP BY libelle, disponible_v
...
|
로그인 후 복사
또는 SUM 또는 AVG와 같은 함수를 사용하여 disponible_v를 집계하세요.
1 2 3 4 | ...
GROUP BY libelle
HAVING SUM(disponible_v) > 0
...
|
로그인 후 복사
8.0 이전 MySQL 버전의 경우 , MySQL 구성 파일 /etc/mysql/conf.d/mysql.cnf에서 sql_mode 설정을 조정해야 할 수도 있습니다. 다음 줄을 추가하세요.
1 2 | [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 중국어 웹사이트의 기타 관련 기사를 참조하세요!