MySQL 中“SELECT 列表不在 GROUP BY 子句中”错误的疑难解答
错误“SELECT 列表的表达式 #1 不在 GROUP BY 子句中”当查询结果包含非聚合列时,MySQL 中通常会出现“GROUP BY 子句并包含非聚合列”的情况。包含在 GROUP BY 子句中。这是由于 sql_mode=only_full_group_by 设置,该设置强制执行更严格的分组规则。
要解决此问题,有多种解决方案:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
SELECT * FROM `tbl_customer_pod_uploads` WHERE `load_id` = '78' AND `status` = 'Active' GROUP BY `proof_type`, `id`
SELECT `proof_type`, COUNT(*) AS `document_count` FROM `tbl_customer_pod_uploads` WHERE `load_id` = '78' AND `status` = 'Active' GROUP BY `proof_type`
需要注意的是,更改 SQL 模式并不是最佳实践。首选的解决方案是修改查询以符合更严格的分组规则。
以上是如何解决MySQL的'SELECT列表不在GROUP BY子句中”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!