MySQL5.6.44dependent on columns in GROUP BY clause

問題1)

        SELECT list is not in GROUP BY clause and contains nonaggregated column \\'testdb.testtables.plat_id\\' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by


問題2)

    [err] 1055 --  'xxx' isn't in GROUP BY


查看數據庫是否設置了only_full_group_by屬性,該屬性會導致上述問題,需要去掉
select @@sql_mode;


修改my.cnf配置文件,添加如下
[mysqld]
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


說明

SQL-92和更早版本不允許選擇列表,HAVING條件或ORDER BY列表引用未在GROUP BY子句中命名的非聚合列的查詢。例如,此查詢在標準SQL-92中是非法的

MySQL 5.7.5及更高版本實現了對功能依賴的檢測。如果ONLY_FULL_GROUP_BY啓用了 SQL模式(默認情況下是這樣),則MySQL拒絕查詢,其中選擇列表,HAVING條件或 ORDER BY列表引用非聚合列,這些列既不在GROUP BY子句中命名也不在功能上依賴於它們。(在5.7.5之前,MySQL不檢測功能依賴性, ONLY_FULL_GROUP_BY默認情況下不啓用。有關5.7.5之前行爲的描述,請參閱MySQL 5.6參考手冊)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章