我是新来拉雷维尔,我有一个问题与数据库的问题。
我已通过编辑禁用“only\ full\ group\ by”sql\模式 /etc/mysql/my.cnf
文件。我查过了 sql_mode
对于全局和会话使用 SELECT @@GLOBAL.sql_mode;
以及 SELECT @@SESSION.sql_mode;
并证实 sql_mode
再也没有了 only_full_group_by
.
然而,当我通过 Postman 提出请求时,它给了我一个错误的说法 this is incompatible with sql_mode=only_full_group_by
.
我很困惑。为什么即使在我改变之后也会出现这个错误 sql_mode
? 我做错什么了吗?
如有任何建议,将不胜感激。
谢谢您。
使用tosql()的sql
select A.*
from `A`
inner join `B` on `A`.`id` = `B`.`a_id`
inner join `C` on `C`.`id` = `B`.`c_id`
group by `A`.`id` having COUNT(A.id) > 0;
4条答案
按热度按时间6pp0gazn1#
这样做是不对的。而不是关机
only_full_group_by
模式下,您应该修复查询,以便它不会破坏mysql:我不知道为什么你关闭严格模式的尝试失败了,但无论如何你都不应该依赖它。
huus2vyu2#
要回答最初的问题,如果您想在laravel中禁用此功能,您必须在config/database.php中的数据库配置中将“strict”值更改为false。
tjjdgumg3#
将此模式添加到config/database.php
如果你设置
'strict' => true
. 一些sql异常不会像sql数据完整性异常那样抛出。2cmtqfgy4#
在laravel中,您可以在运行时执行此操作,而不是进行全局设置