【发布时间】:2018-06-17 03:24:26
【问题描述】:
我是 laravel 的新手,我遇到了数据库问题。
我通过编辑/etc/mysql/my.cnf 文件禁用了“only_full_group_by”sql_mode。我使用SELECT @@GLOBAL.sql_mode; 和SELECT @@SESSION.sql_mode; 检查了sql_mode 的全局和会话,并确认sql_mode 不再具有only_full_group_by。
但是,当我通过邮递员发出请求时,它给了我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;
【问题讨论】:
-
SELECT *与GROUP BY不兼容。在 5.7.5 版本之前,MySQL 曾经接受无效的GROUP BY查询,但它保留为未出现在GROUP BY子句中的SELECT表达式返回indeterminate values 的权利。查询可以使用不同机器上的相同输入返回不同的值。禁用only_full_group_by并不能解决问题,它只是隐藏它。
标签: php mysql laravel-5 mysql-5.7