”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何修复由于 MySQL 严格模式导致 Laravel Eloquent 中的“SELECT 列表的表达式 #1 不在 GROUP BY 子句中”错误?

如何修复由于 MySQL 严格模式导致 Laravel Eloquent 中的“SELECT 列表的表达式 #1 不在 GROUP BY 子句中”错误?

发布于2024-11-08
浏览:990

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]删除
最新教程 更多>
  • 如何高效地在一个事务中插入数据到多个MySQL表?
    如何高效地在一个事务中插入数据到多个MySQL表?
    mySQL插入到多个表中,该数据可能会产生意外的结果。虽然似乎有多个查询可以解决问题,但将从用户表的自动信息ID与配置文件表的手动用户ID相关联提出了挑战。使用Transactions和last_insert_id() 插入用户(用户名,密码)值('test','test...
    编程 发布于2025-04-30
  • `ConfigurationManager.AppSettings.Set`为何不保存App.Config更改?
    `ConfigurationManager.AppSettings.Set`为何不保存App.Config更改?
    app.config值修改quandary 在提供的代码片段中,尝试修改app.config文件中的值。但是,这种修改并不像预期的那样持续。要识别此问题的来源,让我们深入研究提供的代码并探索潜在问题。代码段: lang =“ Russian”; 私有void main_formclosing(对象...
    编程 发布于2025-04-30
  • 如何避免Go语言切片时的内存泄漏?
    如何避免Go语言切片时的内存泄漏?
    ,a [j:] ...虽然通常有效,但如果使用指针,可能会导致内存泄漏。这是因为原始的备份阵列保持完整,这意味着新切片外部指针引用的任何对象仍然可能占据内存。 copy(a [i:] 对于k,n:= len(a)-j i,len(a); k
    编程 发布于2025-04-30
  • C++20 Consteval函数中模板参数能否依赖于函数参数?
    C++20 Consteval函数中模板参数能否依赖于函数参数?
    [ consteval函数和模板参数依赖于函数参数在C 17中,模板参数不能依赖一个函数参数,因为编译器仍然需要对非contexexpr futcoriations contim at contexpr function进行评估。 compile time。 C 20引入恒定函数,必须在编译时进行...
    编程 发布于2025-04-30
  • Java开发者如何保护数据库凭证免受反编译?
    Java开发者如何保护数据库凭证免受反编译?
    在java 在单独的配置文件保护数据库凭证的最有效方法中存储凭据是将它们存储在单独的配置文件中。该文件可以在运行时加载,从而使登录数据从编译的二进制文件中远离。使用prevereness class import java.util.prefs.preferences; 公共类示例{ 首选项...
    编程 发布于2025-04-30
  • 如何使用Regex在PHP中有效地提取括号内的文本
    如何使用Regex在PHP中有效地提取括号内的文本
    php:在括号内提取文本在处理括号内的文本时,找到最有效的解决方案是必不可少的。一种方法是利用PHP的字符串操作函数,如下所示: 作为替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式来搜索特...
    编程 发布于2025-04-30
  • MySQL中如何保持UTF8编码的表格输出格式?
    MySQL中如何保持UTF8编码的表格输出格式?
    在使用包含非英语字符的MySQL数据库时,请使用MySQL命令行表达式输出格式格式化,而在切换到utf8编码时,表格查询结果的输出格式可能会中断。本文提供了解决此格式问题的综合指南。简短答案 使用-default-character-character-set = utf8选项将mysql cli...
    编程 发布于2025-04-30
  • 如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    使用http request 上传文件上传到http server,同时也提交其他参数,java.net.net.urlconnection and Multipart/form-data Encoding是普遍的。 Here's a breakdown of the process:Mu...
    编程 发布于2025-04-30
  • FastAPI自定义404页面创建指南
    FastAPI自定义404页面创建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    编程 发布于2025-04-30
  • 如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求模拟浏览器行为,以及伪造的用户代理提供了一个用户 - 代理标头一个有效方法是提供有效的用户式header,以提供有效的用户 - 设置,该标题可以通过browser和Acterner Systems the equestersystermery和操作系统。通过模仿像Chro...
    编程 发布于2025-04-30
  • SQL Server 2008整数时间转换为HH:MM:SS:00格式方法
    SQL Server 2008整数时间转换为HH:MM:SS:00格式方法
    Converting Integer Time to HH:MM:SS:00 Format in SQL Server 2008In SQL Server 2008, converting an integer time value to the HH:MM:SS:00 format involve...
    编程 发布于2025-04-30
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    编程 发布于2025-04-30
  • 如何从2D数组中提取元素?使用另一数组的索引
    如何从2D数组中提取元素?使用另一数组的索引
    Using NumPy Array as Indices for the 2nd Dimension of Another ArrayTo extract specific elements from a 2D array based on indices provided by a second ...
    编程 发布于2025-04-30
  • Python学习日记:For循环与If条件语句的实践
    Python学习日记:For循环与If条件语句的实践
    句法: 对于序列的变量 例子: txt ='1234' 对于txt中的num: 打印(num,end ='') 输出: 1 2 3 4 如果条件: if语句通过检查表达式来查看是否满足条件并根据获得的输出返回值。 句法: 如果条件: 如果条件为真 ...
    编程 发布于2025-04-30
  • Java中假唤醒真的会发生吗?
    Java中假唤醒真的会发生吗?
    在Java中的浪费唤醒:真实性或神话?在Java同步中伪装唤醒的概念已经是讨论的主题。尽管存在这种行为的潜力,但问题仍然存在:它们实际上是在实践中发生的吗? Linux的唤醒机制根据Wikipedia关于伪造唤醒的文章,linux实现了pthread_cond_wait()功能的Linux实现,利用...
    编程 发布于2025-04-30

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3