>데이터 베이스 >MySQL 튜토리얼 >GROUP BY 절 없이 MySQL에서 쿼리를 집계할 수 없는 이유는 무엇입니까?

GROUP BY 절 없이 MySQL에서 쿼리를 집계할 수 없는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-26 02:35:02988검색

Why Can't I Aggregate Queries in MySQL Without a GROUP BY Clause?

MySQL에서 GROUP BY 없이 쿼리 집계

GROUP BY 절을 지정하지 않고 데이터를 집계할 때 쿼리에서 구문 오류가 발생합니다. 이 동작은 데이터 집계의 무결성을 보장하기 위한 노력의 일환으로 MySQL 5.7.5에 도입되었습니다.

오류 메시지에서는 쿼리의 id와 같은 집계되지 않은 열이 SELECT에 나타날 수 없다고 설명합니다. GROUP BY 절 없이 집계 함수(예: COUNT())를 사용할 경우 목록이 표시됩니다. 이렇게 하면 집계 결과가 정확하고 일관되게 유지됩니다.

오류 해결

이 오류를 해결하기 위한 두 가지 옵션이 있습니다.

  1. MySQL 설정 변경: MySQL 구성을 수정하여 이전 동작으로 되돌릴 수 있습니다. 여기서 집계되지 않은 열은 GROUP BY 절 없이 SELECT 목록에서 허용됩니다. 그러나 이는 데이터 집계 모범 사례를 위반하므로 권장되지 않습니다.
  2. 쿼리 수정: 선호되는 해결 방법은 결과를 그룹화하는 GROUP BY 절을 포함하도록 쿼리를 수정하는 것입니다. 집계되지 않은 열. 귀하의 경우 다음 업데이트된 쿼리를 사용할 수 있습니다.
SELECT id, password, COUNT(id) AS count 
FROM users 
WHERE email = :email 
GROUP BY id, password 
LIMIT 1

또는 집계되지 않은 열(예: id)이 WHERE의 단일 값으로 제한되어 있는지 확인할 수 있는 경우 절을 사용하면 GROUP BY 절에서 제외할 수 있습니다. 이 예외의 예는 제공된 링크를 참조하십시오.

이러한 방법 중 하나를 사용하면 오류를 해결하고 MySQL 쿼리에서 데이터가 올바르게 집계되도록 할 수 있습니다.

위 내용은 GROUP BY 절 없이 MySQL에서 쿼리를 집계할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.