MySQL "only_full_group_by" 오류 문제 해결 및 해결
MySQL 버전 5.7에는 "only_full_group_by" SQL 모드가 도입되어 이전에 정상적으로 실행되었던 일부 쿼리 문에서 오류가 보고되었습니다. 이 오류는 SELECT 목록에 GROUP BY 절에 나열되지 않은 집계되지 않은 열이 포함되어 있고 GROUP BY 절의 열에 대한 기능적 종속성이 없는 경우 발생합니다.
해결책은 쿼리 문이 "only_full_group_by" 모드를 따르도록 group_id
열을 GROUP BY 절에 추가하는 것입니다. 이렇게 하면 group_id
및 group_name
의 서로 다른 각 조합에 대해 하나의 결과 행만 있게 됩니다.
특히 여러 테이블로 작업할 때 가장 좋은 방법은 테이블 이름이나 별칭으로 모든 열을 한정하는 것입니다. 이렇게 하면 모호성을 방지하고 필요한 데이터가 선택되도록 할 수 있습니다.
다음은 "only_full_group_by" 모드에서 정상적으로 실행될 수 있도록 수정된 쿼리문입니다.
<code class="language-sql">SELECT g.group_id AS 'value', g.group_name AS 'text' FROM mod_users_groups g LEFT JOIN mod_users_data d ON g.group_id = d.group_id WHERE g.active = 1 AND g.department_id = 1 AND g.manage_work_orders = 1 AND g.group_name != 'root' AND g.group_name != 'superuser' GROUP BY g.group_id, g.group_name HAVING COUNT(d.user_id) > 0 ORDER BY g.group_name</code>
"only_full_group_by" 모드를 비활성화하는 것은 권장되지 않습니다. 이는 데이터 무결성과 정확성을 보장하는 데 도움이 됩니다. GROUP BY 절에 집계되지 않은 열을 강제로 포함함으로써 MySQL은 결과가 정확하고 예상되는 그룹화된 데이터를 반영하도록 보장할 수 있습니다.
위 내용은 쿼리에서 MySQL의 'only_full_group_by' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!