当前位置: 首页 > 面试题库 >

SELECT列表不在GROUP BY子句中,并且包含未聚合的列…与sql_mode = only_full_group_by不兼容

杜嘉慕
2023-03-14
问题内容

我在装有WAMP Server的Windows PC上使用MySQL 5.7.13运行

这是我的问题是执行此查询时

SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`

总是会出现这样的错误

SELECT列表的表达式#1不在GROUP
BY子句中,并且包含未聚合的列’returntr_prod.tbl_customer_pod_uploads.id’,该列在功能上不依赖于GROUP
BY子句中的列;这与sql_mode = only_full_group_by不兼容

能否请您告诉我最好的解决方案…

我需要像

+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+
| id | user_id | load_id | bill_id | latitude | langitude | proof_type | document_type | file_name    | is_private | status | createdon           | updatedon           |
+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+
|  1 |       1 | 78      | 1       | 21.1212  | 21.5454   |          1 |             1 | id_Card.docx |          0 | Active | 2017-01-27 11:30:11 | 2017-01-27 11:30:14 |
+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+

问题答案:

这个

SELECT列表的表达式#1不在GROUP
BY子句中,并且包含未聚合的列’returntr_prod.tbl_customer_pod_uploads.id’,该列在功能上不依赖于GROUP
BY子句中的列;这与sql_mode = only_full_group_by不兼容

只需通过以下命令在MySQL中更改sql模式即可解决,

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

这也对我有用。我用了它,因为在我的项目中有很多这样的查询,所以我只是将此sql模式更改为only_full_group_by

谢谢… :-)



 类似资料: