집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 오류 #1140: 'GROUP 열 혼합'을 해결하는 방법?
MySQL 오류 #1140: "GROUP 열 혼합" 문제 이해
MySQL 오류 #1140, "GROUP 열 혼합( GROUP 열이 없는 MIN(), MAX(), COUNT(), ...)는 다음과 같은 경우 불법입니다. no GROUP BY 절"은 결과를 그룹화하지 않고 데이터를 집계하려고 시도할 때(예: COUNT()와 같은 함수 사용) 발생합니다. 이는 SQL 쿼리의 SELECT 절에 집계 함수와 비집계 열이 포함되어 있고 GROUP BY 절이 없는 경우 발생할 수 있습니다.
문제 설명:
다음 SQL 쿼리는 이 문제를 예시합니다.
SELECT COUNT(node.nid), node.nid AS nid, node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value FROM node node LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid WHERE node.type IN ('update') ORDER BY node_data_field_update_date_field_update_date_value DESC
이 쿼리를 서버에서 ONLY_FULL_GROUP_BY 설정을 활성화하면 오류 메시지가 나타납니다.
#1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause`
해결책:
이 문제를 해결하려면 ONLY_FULL_GROUP_BY 설정을 비활성화하거나 SQL의 그룹화 작업 query.
only_full_group_by = 0
SELECT COUNT(node.nid), node.nid AS nid, node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value FROM node node LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid WHERE node.type IN ('update') GROUP BY node.nid ORDER BY node_data_field_update_date_field_update_date_value DESC
이 솔루션 중 하나를 적용하면 "GROUP 열 혼합" 오류를 우회하고 집계된 데이터를 성공적으로 검색할 수 있습니다.
위 내용은 MySQL 오류 #1140: 'GROUP 열 혼합'을 해결하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!