」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何修復由於 MySQL 嚴格模式導致 Laravel Eloquent 中的「SELECT 清單的表達式 #1 不在 GROUP BY 子句中」錯誤?

如何修復由於 MySQL 嚴格模式導致 Laravel Eloquent 中的「SELECT 清單的表達式 #1 不在 GROUP BY 子句中」錯誤?

發佈於2024-11-08
瀏覽:754

How to Fix \

Laravel Eloquent 中與sql_mode=only_full_group_by 不相容

遇到錯誤「SELECT 清單的表達式#1 不在GROUP BY 子句中.. ." 當執行帶有分組的Eloquent 查詢時,表示與MySQL不相容於sql_mode=only_full_group_by。若要解決此問題:

停用 MySQL 嚴格模式

一種解決方案是在資料庫連線配置中停用 MySQL 嚴格模式設定。在Laravel 的.env 檔案中,新增以下行:

DB_STRICT_MODE=false

或者,您可以在config/database.php 檔案中設定嚴格模式:

'mysql' => [
    // Disable strict mode
    'strict' => false,
],

說明

在MySQL 5.7 及更高版本中,sql_mode=only_full_group_by 模式要求SELECT 列表中的所有列要么包含在GROUP BY 子句中,要么包含在聚合函數中。在提供的查詢中:

$products = Product::where('status', 1)
            ->where('stock', '>', 0)
            ->where('category_id', '=', $category_id)
            ->groupBy('store_id')
            ->orderBy('updated_at', 'desc')
            ->take(4)
            ->get();

列 id(主鍵)出現在 SELECT 清單中,但不包含在 GROUP BY 子句中。透過停用嚴格模式,MySQL 將允許 SELECT 清單中存在功能上不依賴 GROUP BY 列的非聚合列。

版本聲明 本文轉載於:1729224679如有侵犯,請洽[email protected]刪除
最新教學 更多>
  • 了解類別字段和靜態屬性
    了解類別字段和靜態屬性
    你好!歡迎閱讀有關類別欄位和靜態屬性的文章! ES15 新增了直接在類別主體中定義類別欄位和靜態屬性的功能。這消除了構造函數初始化屬性的需要,從而使程式碼更清晰、更簡潔。這是關於了解這個新功能的! 1.定義一個類別。 你需要定義一個類別來使用它: class myClass { ...
    程式設計 發佈於2024-11-08
  • 如何使用 Python 的 `json.dumps` 控制 JSON 鍵順序?
    如何使用 Python 的 `json.dumps` 控制 JSON 鍵順序?
    使用“json.dumps”時JSON鍵順序不一致在Python中,JSON轉換通常需要利用“json.dumps”進行轉換字典轉換為JSON 物件。但是,使用者可能會遇到結果 JSON 鍵順序不一致的情況,預期序列(id、名稱、時區)與實際輸出(時區、id、名稱)不同。 要解決此問題並強制執行所需...
    程式設計 發佈於2024-11-08
  • 如何有效地內爆帶引號的 PHP 陣列?
    如何有效地內爆帶引號的 PHP 陣列?
    PHP 中帶引號的內爆數組在PHP 中,implode() 函數用於將數組元素連接成字串,用指定的分隔符號。當使用以特定格式(例如逗號分隔值 (CSV))表示資料的陣列時,有必要將元素括在引號中。 原始方法提供的程式碼片段示範了implode() 建立逗號分隔字串的基本用法:$array = arr...
    程式設計 發佈於2024-11-08
  • 標準方法的更實際範例
    標準方法的更實際範例
    前面的範例展示了標準方法的使用,但不是在實際場景中。 Series 介面被廣泛使用,許多程式都依賴它。 我們發現 Series 的幾個實作增加了一個方法,該方法傳回一個包含該系列的下 n 個元素的陣列。 決定使用 getNextArray(int n) 方法改進 Series 接口,其中 n...
    程式設計 發佈於2024-11-08
  • 如何準備您的應用程式以處理黑色星期五的多個請求
    如何準備您的應用程式以處理黑色星期五的多個請求
    一年中最受歡迎的購物日之一是黑色星期五,此時商店的人流經常急劇增加。如果您的應用程式尚未準備好應對這種激增,則可能會導致系統過載、回應時間緩慢甚至中斷。以下是一些關鍵策略,可確保您的應用程式能夠有效地管理更高的需求。 1。對您的應用程式進行負載測試 在黑色星期五高峰之前,進行負載測試以模擬高流量場...
    程式設計 發佈於2024-11-08
  • 如何在 Python 中用逗號連接清單中的字串?
    如何在 Python 中用逗號連接清單中的字串?
    從列表中用逗號連接字符串將字符串列表映射到逗號分隔的字符串是編程中的常見任務。可以採用各種方法來實現此目標,每種方法都有自己的優點和缺點。 一種流行的方法是將 join 方法與映射函數結合使用。此方法需要建立一個中間字串,用作各個字串之間的分隔符號。例如:my_list = ['a', 'b', '...
    程式設計 發佈於2024-11-08
  • C++ 中的「long」、「long int」、「long long」和「long long int」有什麼不同?
    C++ 中的「long」、「long int」、「long long」和「long long int」有什麼不同?
    了解C 中長資料類型的細微差別當您開始從Java 過渡到C 時,您可能遇到過多功能的long 資料型,有多種形式,例如long、long long、long int 和long long int。本文旨在闡明這些數據類型之間的差異並闡明它們的預期用途。 在 C 中,long 和 long int 是...
    程式設計 發佈於2024-11-08
  • 為什麼你應該為開源付費
    為什麼你應該為開源付費
    幾乎每個開發者每天都會使用開源項目,無論是在VS Code 中編寫程式碼、使用TailwindCSS 加速開發,還是使用最受歡迎的PHP 框架Laravel 建立強大的Web 應用程式.我們不要忘記用於建立管理面板的 FilamentPHP。 這些項目不是鬼建的;而是由鬼魂建造的。它們是由人們創造...
    程式設計 發佈於2024-11-08
  • 如何找到一個資料幀中存在但另一個資料幀中不存在的行(比較 df1 和 df2)?
    如何找到一個資料幀中存在但另一個資料幀中不存在的行(比較 df1 和 df2)?
    比較資料幀:尋找中存在但另一個中不存在的行比較資料幀以識別差異對於資料品質保證和合併至關重要營運。在本例中,我們有兩個具有特定結構的資料幀(df1 和 df2),需要確定 df2 中存在但 df1 中不存在的行。 最初,嘗試使用 df1 != df2 比較資料幀,結果是錯誤。此方法僅適用於具有相同行...
    程式設計 發佈於2024-11-08
  • CSS 中的動畫
    CSS 中的動畫
    CSS中的動畫有兩個部分 - @keyframes和animation-*。 @keyframes at 規則 第一部分要求我們定義@keyframes。 這讓我們可以指定在動畫持續時間的不同點應套用的 CSS 樣式。 不同的時間點以百分比值指定。可以指定 0 到 100% 之...
    程式設計 發佈於2024-11-08
  • 使用 React 建立汽車租賃平台
    使用 React 建立汽車租賃平台
    BookCars 是一個面向供應商的汽車租賃平台,具有用於管理車隊和預訂的後端,以及用於租車的前端和行動應用程式。 透過以下解決方案,您可以透過將其託管在具有至少1GB RAM 的Docker Droplet 上,以非常低的成本建立一個針對多個供應商進行優化的完全可自訂的汽車租賃網站,並使用可操作...
    程式設計 發佈於2024-11-08
  • 模擬資料產生器:高效率軟體測試的關鍵
    模擬資料產生器:高效率軟體測試的關鍵
    模拟数据生成在软件测试和开发中发挥着至关重要的作用,使团队能够在不依赖实时数据的情况下模拟真实场景。无论您是测试新功能还是开发 API,模拟数据都有助于简化流程,确保测试一致、可靠,而无需访问生产数据库。 在本文中,我们将深入探讨模拟数据生成器是什么、为什么它们很重要、如何实现它们以及当今开发人员...
    程式設計 發佈於2024-11-08
  • 模擬請求
    模擬請求
    冷靜一點,提交者王,我不會談論 JSON-Server,但它值得留下來! 每個前端都會經歷模擬端點請求的需要,有時是因為後端還沒有完成其工作,有時是為了調試和模擬特定情況,這在日常生活中很常見。 是的,JSON-Server 令人難以置信並且使用起來非常簡單,但是幾天前我遇到了一個非常具體的問題...
    程式設計 發佈於2024-11-08
  • 如何在 PHP 中迭代遍歷和處理子目錄內的檔案?
    如何在 PHP 中迭代遍歷和處理子目錄內的檔案?
    如何在PHP中遍歷子目錄並迭代處理文件在PHP中,遍歷子目錄並迭代處理文件可以使用RecursiveDirectoryIterator和RecursiveIteratorIterator來實作。讓我們了解如何根據需要建立程式碼:// Initializing the path to the main...
    程式設計 發佈於2024-11-08
  • 癮君子 # 何時使用效果、Angular DI 功能、請求快取等
    癮君子 # 何時使用效果、Angular DI 功能、請求快取等
    ?嘿,Angular Addict 夥伴 這是 Angular Addicts Newsletter 的第 30 期,這是一本每月精選的引起我注意的 Angular 資源合集。 (這裡是第29期、28期、27期) ?發佈公告 ?Nx 19.8 更新 ...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3