首頁 > 資料庫 > mysql教程 > 如何修復 MySQL'SELECT 清單的表達式不在 GROUP BY 子句中”錯誤?

如何修復 MySQL'SELECT 清單的表達式不在 GROUP BY 子句中”錯誤?

Linda Hamilton
發布: 2024-11-21 02:24:12
原創
495 人瀏覽過

How to Fix the MySQL

解決「SELECT 清單的表達式不在GROUP BY 子句中」錯誤

問題:

#1055 - Expression of SELECT list is not in GROUP BY clause and contains nonaggregated column this is incompatible with sql_mode=only_full_group_by
登入後複製

原因:

當SELECT 清單中有未包含在GROUP BY 子句中的非聚合列時,會發生此錯誤。在 MySQL 5.7.12 版本中,預設啟用 only_full_group_by SQL 模式,該模式強制執行更嚴格的分組規則。

解決方案:

要解決此錯誤,您可以:

1。將非聚合列新增至 GROUP BY 子句:

這可確保查詢僅傳回 GROUP BY 子句中所有欄位具有相同值的行。

SELECT libelle, credit_initial, disponible_v, SUM(montant) AS montant 
FROM fiche, annee, type 
WHERE type.id_type = annee.id_type AND annee.id_annee = fiche.id_annee 
  AND annee = YEAR(CURRENT_TIMESTAMP)
GROUP BY libelle, credit_initial, disponible_v
ORDER BY libelle ASC;
登入後複製

2。停用 only_full_group_by SQL 模式:

這允許查詢傳回 GROUP BY 子句中所有欄位可能不具有相同值的行。

sudo vim /etc/mysql/conf.d/mysql.cnf
登入後複製
捲動到文件底部並加入以下行:

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
登入後複製
儲存並退出 vim。重新啟動 MySQL:

sudo service mysql restart
登入後複製
重新啟動 MySQL 後,查詢應該會成功執行,不會有錯誤。

以上是如何修復 MySQL'SELECT 清單的表達式不在 GROUP BY 子句中”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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