Windows PC에서 WAMP 서버와 함께 MySQL 5.7.13을 사용하고 있습니다
이 쿼리를 실행할 때 문제가 발생합니다
으아악항상 이런 오류가 발생해요
SELECT 목록의 표현식 #1은 GROUP BY 절에 없으며 GROUP BY 절의 열에 기능적으로 종속되지 않는 비집계 열 "returntr_prod.tbl_customer_pod_uploads.id"를 포함합니다. 이는 sql_mode와 일치하지 않습니다. =only_full_group_by 호환 가능
가장 좋은 해결책을 알려주실 수 있나요?
이 결과가 필요해요
으아악P粉0990000442023-10-11 11:07:33
MySql 엔진에는 시스템 변수 ONLY_FULL_GROUP_BY
가 있습니다.
Mysql 버전 5.7.5부터: ONLY_FULL_GROUP_BY
SQL 모드가 기본적으로 활성화되어 있습니다
버전 5.7.5 이전 : 기본적으로 활성화되어 있지 않습니다 ONLY_FULL_GROUP_BY
.
ONLY_FULL_GROUP_BY
SQL 模式(从版本 5.7.5 开始默认启用),MySQL 将拒绝选择列表、HAVING
条件或ORDER BY
列表指的是非聚合列,这些列既未在 GROUP BY
SQL 모드가 활성화된 경우(버전 5.7.5부터 기본적으로 활성화됨) MySQL은 비집계 열을 참조하는 선택 목록,
문제를 해결하려면 솔루션(아래 3개 중 1개) 중 하나를 사용하세요.
(1) PHPMyAdmin
ONLY_FULL_GROUP_BY
: 모드sql_mode
phpMyAdmin을 사용하는 경우 아래 스크린샷과 같이
sql mode
变量并从值中删除ONLY_FULL_GROUP_BY
sql 모드 변수를 편집하고 값에서 text
를 제거합니다.또는
(2) SQL/명령 프롬프트ONLY_FULL_GROUP_BY
Disable : 다음 명령을 실행하여 모드를 비활성화합니다.
으아악 또는 SELECT *
(3) ONLY_FULL_GROUP_BY
을 사용하지 마세요.
SELECT
查询中使用相关列。相关意味着列,它们要么出现在 group by
子句中,要么出现在具有聚合函数的列(MAX
、MIN
모드를 비활성화하지 마세요. 하지만 代码>
<代码>In 代码>,
point(1) OR point(2)
중요 지침
[mysqld]
部分中的 /etc/mysql/my.cnf
따라서 MySQL을 다시 시작해도 변경 사항이 유지되도록 구성 파일(예: /etc/mysql/my.cnf 섹션의 /etc/mysql/my.cnf
[mysqld])에서 설정해야 합니다.
구성 파일: sql_mode
OR sql-mode
/etc/mysql/my.cnf
변수 이름ONLY_FULL_GROUP_BY
:
sql-mode
sql_mode
값에서
P粉9094764572023-10-11 00:45:13
이
이 명령을 통해 MySQL에서 SQL 모드를 변경하면 쉽게 해결할 수 있습니다.
으아아아이건 나에게도 효과가 있다.. 내 프로젝트에 이와 같은 쿼리가 많았기 때문에 이것을 사용했습니다. 그래서 이 SQL 스키마를 only_full_group_by
로 변경했습니다.또는 SELECT 문에서 지정한 GROUP BY 절의 모든 열만 포함합니다. sql_mode는 활성화된 상태로 남아 있을 수 있습니다.
감사합니다...:-)
업데이트 날짜: 2023년 7월 14일
SQL 스키마를 변경하는 것이 하나의 솔루션이지만 구조화된 쿼리 언어에서 가장 좋은 방법은 여전히 모든 (SELECT * ...) 열을 선택하지 않고 대신 아래 @Tim Biegeleisen과 같이 그룹화 열에 집계 함수를 사용하는 것입니다. https://stackoverflow.com/a/41887524/3602846
에 대한 답변