> 데이터 베이스 > MySQL 튜토리얼 > MySQL \'SELECT 목록의 식이 GROUP BY 절에 없습니다\' 오류를 수정하는 방법은 무엇입니까?

MySQL \'SELECT 목록의 식이 GROUP BY 절에 없습니다\' 오류를 수정하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-21 02:24:12
원래의
500명이 탐색했습니다.

How to Fix the MySQL

"SELECT 목록의 식이 GROUP BY 절에 없습니다." 오류 문제 해결

문제:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿