我要检索按名称分组城市的结果的对象集合,我的查询是
public function getDistinctCitiesName()
{
$qb = $this->createQueryBuilder("cc");
->add('groupBy', 'cc.name');
return $qb;
}
运行时我有例外
request.CRITICAL:未捕获的PHP异常 Doctrine \ DBAL \ Exception \ DriverException:“ 执行'SELECT c0_.id AS id_0,c0_.name AS name_1,c0_.postal_code AS postal_code_2,c0_.country AS country_3,c0_.state AS state_4, c0_.visible AS visible_5来自城市c0_ GROUP BY c0_.name': SQLSTATE [42000]:语法错误或访问冲突:1055表达式#1 SELECT列表的内容不在GROUP BY子句中,并且包含未聚合的 列“ www.c0_.id”在功能上不依赖于 GROUP BY子句;这与 sql_mode = only_full_group_by“
我无法禁用only_full_group_by模式,所以有解决方案吗?
答案 0 :(得分:0)
您需要从mySQL禁用ONLY_FULL_GROUP_BY以摆脱此异常。 有两个选项供您选择:-
1:-在原则配置中将其禁用
options:
1002: 'SET sql_mode=(SELECT REPLACE(@@sql_mode, "ONLY_FULL_GROUP_BY", ""))'
如果将其添加到学说配置中,您将再也不会出现异常。
2:-在mySQL中禁用它 在mysql控制台中运行以下命令
mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
或从phpmyadmin中删除它 Screenshot technical code from webpack result JS
这是我关于这个主题的disable ONLY_FULL_GROUP_BY from phpmyadmin。您可以检查一下并分享您的评论。
谢谢!