首頁 > 資料庫 > mysql教程 > 如何解決MySQL的「SELECT清單不在GROUP BY子句中」錯誤?

如何解決MySQL的「SELECT清單不在GROUP BY子句中」錯誤?

DDD
發布: 2024-12-22 16:40:13
原創
191 人瀏覽過

How to Resolve MySQL's

MySQL 中“SELECT 列表不在GROUP BY 子句中”錯誤的疑難解答

錯誤“SELECT 列表的表達式#1 不在GROUP BY 子句中」當查詢結果包含非聚合列時,MySQL 中通常會出現「GROUP BY 子句並包含非聚合列」的情況。包含在 GROUP BY 子句中。這是由於 sql_mode=only_full_group_by 設置,該設置強制執行更嚴格的分組規則。

要解決此問題,有多種解決方案:

  1. 停用sql_mode=only_full_group_by: 這可以透過以下方式完成指令:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
登入後複製
  1. 在GROUP BY 子句中包含所有選取的欄位:
  2. 這可確保 SELECT 清單中的所有欄位都包含在 GROUP BY 操作中。例如:
SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`, `id`
登入後複製
  1. 使用聚合函數:
  2. 不要選擇單一列,而是使用聚合函數,例如SUM()、COUNT() 或AVG( )將資料分組。這消除了對 GROUP BY 子句的需求。例如:
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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板