문제:
GROUP BY 절에 집계되지 않은 열이 포함된 쿼리를 실행하면 다음과 같은 결과가 발생합니다. 오류:
#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 절에 포함되지 않은 SELECT 목록의 집계되지 않은 열이 있을 때 발생합니다. MySQL 버전 5.7.12에서는 only_full_group_by SQL 모드가 기본적으로 활성화되어 더 엄격한 그룹화 규칙을 적용합니다.
해결책:
이 오류를 해결하려면 다음 중 하나를 수행하세요. :
1. GROUP BY 절에 집계되지 않은 열을 추가합니다.
이렇게 하면 쿼리가 GROUP BY 절의 모든 열에 대해 동일한 값을 갖는 행만 반환합니다.
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, credit_initial, disponible_v ORDER BY libelle ASC;
2. only_full_group_by SQL 모드를 비활성화합니다.
이렇게 하면 쿼리가 GROUP BY 절의 모든 열에 대해 동일한 값을 가질 수 없는 행을 반환할 수 있습니다.
sudo vim /etc/mysql/conf.d/mysql.cnf
파일 맨 아래에 다음 줄을 추가합니다:
[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
vim을 저장하고 종료합니다. MySQL 다시 시작:
sudo service mysql restart
MySQL을 다시 시작한 후 쿼리는 오류 없이 성공적으로 실행되어야 합니다.
위 내용은 MySQL \'SELECT 목록의 식이 GROUP BY 절에 없습니다\' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!