> 데이터 베이스 > MySQL 튜토리얼 > MySQL 오류 해결 방법: SELECT 목록이 SQL_MODE=ONLY_FULL_GROUP_BY와 호환되지 않습니까?

MySQL 오류 해결 방법: SELECT 목록이 SQL_MODE=ONLY_FULL_GROUP_BY와 호환되지 않습니까?

Linda Hamilton
풀어 주다: 2024-12-30 21:54:11
원래의
356명이 탐색했습니다.

How to Resolve MySQL Error: SELECT List Incompatible with SQL_MODE=ONLY_FULL_GROUP_BY?

MySQL 오류: SELECT 목록이 SQL_MODE=ONLY_FULL_GROUP_BY와 호환되지 않습니다

집계되지 않은 열이 있는 SELECT 문이 포함된 쿼리를 실행할 때 그룹화 절을 사용하면 MySQL은 표현식이 GROUP BY 절에 없음을 나타내는 오류를 반환할 수 있습니다. 이는 SQL_MODE가 ONLY_FULL_GROUP_BY로 설정되어 SELECT 목록의 집계되지 않은 모든 열이 GROUP BY 절에 포함되어야 하는 경우 발생할 수 있습니다.

해결책 1: SQL_MODE=ONLY_FULL_GROUP_BY 비활성화

한 가지 해결책은 다음 명령을 실행하여 SQL_MODE=ONLY_FULL_GROUP_BY 설정:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
로그인 후 복사

이렇게 하면 쿼리가 오류 없이 실행될 수 있습니다.

해결책 2: 집계되지 않은 모든 열을 GROUP에 포함 BY 조항

또 다른 솔루션 GROUP BY 절에 집계되지 않은 모든 열을 포함하는 것입니다. 다음을 포함하도록 쿼리를 수정하면 됩니다.

SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`, `id`
로그인 후 복사

이렇게 하면 집계되지 않은 모든 열이 GROUP BY 절에 포함되고 쿼리가 오류 없이 실행됩니다.

해결책 3: 집계 함수 사용

모범 사례를 위해 다음을 고려하세요. 모든 열을 선택하는 대신 집계되지 않은 열에 대한 집계 함수입니다. 예를 들어, 각 증명 유형에 대한 레코드 개수만 필요한 경우 쿼리를 다음과 같이 수정할 수 있습니다.

SELECT `proof_type`, COUNT(*) AS `total_records`
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`
로그인 후 복사

위 내용은 MySQL 오류 해결 방법: SELECT 목록이 SQL_MODE=ONLY_FULL_GROUP_BY와 호환되지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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