0
发行的MySQL的新版本only_full_group_byonly_full_group_by: “ORDER BY子句是不是在GROUP BY子句”
我需要使用组由(col_id)ORDER BY(日期)表值和 和我的代码MySQL的如下:
SELECT COUNT(created_date) AS `Rows` , ANY_VALUE(id)
FROM `table` where `my_id` = 1 AND `status` = '0'
GROUP BY `id`
ORDER BY `created_date` DESC
我收到提示如下
SQLSTATE [42000]:语法错误或访问冲突:ORDER BY子句中的1055表达式#1是不是在GROUP BYç lause并包含非聚集列'database.table.created_date',它在功能上不依赖于GROUP BY子句中的列;这是不符合sql_mode = only_full_group_by
任何人说的解决方案?
在此先感谢...
禁用only_full_group_by'的mysql>设置全局的sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO ,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; mysql> set session sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';' –
[在MySql中执行查询时仅与\ _full \ _group \ _by相关的错误](https:// stackoverflow .com/questions/34115174/error-related-to-only-full-group-by-when-executed-a-query-in-mysql) –
GROUP BY错误的要点在于它们表示逻辑错误。 “ORDER BY created_date”是不可能的,因为'SELECT'子句中没有这样的表达式,每个组可能包含两个或更多不同的'created_date'值。哪一个用于排序?禁用'sql_mode'并不能解决问题,这只会让MySQL返回不确定的结果。 – axiac