首页 >数据库 >mysql教程 >如何修复 MySQL 的'SELECT List Incompile with GROUP BY”错误?

如何修复 MySQL 的'SELECT List Incompile with GROUP BY”错误?

Barbara Streisand
Barbara Streisand原创
2025-01-04 12:20:36194浏览

How to Fix MySQL's

解决 SQL_MODE 的“SELECT List Incompile with GROUP BY”错误

MySQL 的错误消息:

Expression #1 of SELECT 列表不在 GROUP BY 子句中并且包含非聚合列'returntr_prod.tbl_customer_pod_uploads.id' 在功能上不依赖于 GROUP BY 子句中的列;这与 sql_mode=only_full_group_by 不兼容

表示 SELECT 列表包含不在 GROUP BY 子句中的非聚合列。使用 MySQL 的 only_full_group_by SQL 模式时会出现此错误。

潜在解决方案:

  • 更改 SQL 模式:

您可以通过执行以下命令暂时禁用 only_full_group_by 模式以下命令:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
  • 修改查询:

或者,您可以修改查询以包含 SELECT 列表中的所有列分组依据子句:

SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `load_id`, `bill_id`, `latitude`, `langitude`, `proof_type`, `document_type`, `file_name`, `is_private`, `status`, `createdon`, `updatedon`
  • 使用聚合器函数:

对于结构化查询语言的最佳实践,请避免选择所有列。相反,请在分组列上使用聚合器函数,例如:

SELECT MAX(`id`) AS `id`,
       COUNT(*) AS `total_rows`
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `load_id`

以上是如何修复 MySQL 的'SELECT List Incompile with GROUP BY”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn