집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 5.7.5에서 \'GROUP BY\ 없이 집계된 쿼리' 오류가 발생하는 이유는 무엇입니까?
MySQL 5.7.14에는 기존 쿼리를 유발할 수 있는 변경 사항이 도입되었습니다. "SQLSTATE[42000]: 구문 오류 또는 액세스 위반: 1140 GROUP BY 없이 집계된 쿼리에서" 오류로 인해 실패합니다. 이 오류는 SELECT 절에서 열(예: COUNT())을 집계하고 GROUP BY 절에서 집계되지 않은 열을 포함하지 않을 때 발생합니다.
이전 버전의 MySQL에서는 GROUP BY를 사용하지 않고 열을 집계하는 것이 허용되었습니다. 그러나 데이터 무결성을 보장하기 위해 MySQL 5.7.5 이상 버전에서는 집계되지 않은 모든 열이 GROUP BY 절에 포함되어야 하는 "strict" 또는 "only_full_group_by" SQL 모드를 적용합니다.
< h3>솔루션 옵션
이 문제를 해결할 수 있는 두 가지 옵션이 있습니다:
GROUP BY 절 외부에서 집계되지 않은 열을 허용하는 레거시 동작을 기본값으로 설정하도록 MySQL 구성을 수정할 수 있습니다. 이는 업계 모범 사례에 어긋나고 잘못된 결과를 초래할 수 있으므로 권장되지 않습니다.
GROUP BY 절에 집계되지 않은 열을 포함하도록 쿼리를 수정하세요. 예:
<code class="sql">SELECT id, password, COUNT(id) AS count FROM users WHERE email = :email GROUP BY id, password LIMIT 1</code>
GROUP BY 절에서 집계되지 않은 열을 제외하는 것은 MySQL 5.7.5에서 여전히 허용됩니다. 집계되지 않은 열이 단일 값으로 제한되는 경우 이후 버전. 예를 들어, WHERE 절의 필터는 열을 단일 행으로 제한하여 GROUP BY 절에서 해당 열을 제외해도 안전합니다.
위 내용은 MySQL 5.7.5에서 \'GROUP BY\ 없이 집계된 쿼리' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!