带有ONLY_FULL_GROUP_BY ON

时间:2019-01-03 14:08:43

标签: mysql symfony doctrine-orm group-by

我要检索按名称分组城市的结果的对象集合,我的查询是

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模式,所以有解决方案吗?

1 个答案:

答案 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。您可以检查一下并分享您的评论。

谢谢!