首頁 > 資料庫 > mysql教程 > 如何在 MySQL 5.6 中聚合非分組列?

如何在 MySQL 5.6 中聚合非分組列?

Susan Sarandon
發布: 2024-11-29 04:35:13
原創
294 人瀏覽過

How to Aggregate Non-Grouped Columns in MySQL 5.6?

不進行分組聚合:MySQL 5.6 的解決方案

在MySQL 5.6 中,ANY_VALUE() 函數,允許聚合非分組列,允許聚合非分組列,允許聚合非分組不可用。這在將查詢從 MySQL 5.7 遷移到 5.6 時帶來了挑戰。

MySQL 模式修改

一個解決方案是修改生產環境的 SQL 模式。透過將 ONLY_FULL_GROUP_BY 模式設為空,它將暫時停用聚合非分組列的限制。

SET SESSION sql_mode = '';
/* Your query here */
SET SESSION sql_mode = @mode;
登入後複製

替代聚合方法

但是,很重要請注意,所討論的查詢可能並不理想。它從每個國家/地區的“圖像”表中傳回隨機行。

更可靠的方法是根據條件(例如「id」列)選擇特定影像行。

SELECT c.id, c.name, i.*
FROM countries c
LEFT JOIN (
  SELECT MIN(id) id, country_id
  FROM images
  GROUP BY country_id
) first ON c.id = first.country_id
LEFT JOIN images i ON first.id = i.id
登入後複製

此查詢將為每個國家/地區返回一行,並提供可預測的圖像選擇。它利用“id”列來選擇每個國家/地區的“第一張”圖像。

以上是如何在 MySQL 5.6 中聚合非分組列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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