解决 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 模式时会出现此错误。
潜在解决方案:
您可以通过执行以下命令暂时禁用 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中文网其他相关文章!