Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 条令QueryBuilder:avg返回字符串值,而不是数字_Mysql_Symfony_Doctrine Orm - Fatal编程技术网

Mysql 条令QueryBuilder:avg返回字符串值,而不是数字

Mysql 条令QueryBuilder:avg返回字符串值,而不是数字,mysql,symfony,doctrine-orm,Mysql,Symfony,Doctrine Orm,我无法使用和having条件筛选结果,因为AVG函数返回字符串值 $qb = $this->getDoctrine()->getRepository('AppBundle:Service')->createQueryBuilder('s'); $qb->join('s.ratingList', 'r') ->addSelect('AVG(r.rating) as avg_rating') ->addGroupBy('s.service')

我无法使用
和having
条件筛选结果,因为
AVG
函数返回字符串值

 $qb = $this->getDoctrine()->getRepository('AppBundle:Service')->createQueryBuilder('s');
 $qb->join('s.ratingList', 'r')
    ->addSelect('AVG(r.rating) as avg_rating')
    ->addGroupBy('s.service')
    ->andHaving('avg_rating >= :rating')
    ->setParameter('rating', $rating)
  ;

在结果中可以看到,
avg_rating
是字符串格式而不是数字,这就是过滤不起作用的原因。现在,我如何将
avg_评级
设为整数?

有不同的东西,它们在哪里。请看:我知道不同之处,但问题是参数没有设置。现在,更改where,看看该参数是否有效。这就是为什么我提到这些是不同的。如果我按照你的建议做,我有:
列未找到:1054未知列“sclr_8”在“where子句”
(sclr_8-我猜是平均值)尝试
->where('avg(r.rating)>=:rating')
有不同的东西和在哪里。请看:我知道不同之处,但问题是参数没有设置。现在,更改where,看看该参数是否有效。这就是为什么我提到这些是不同的。如果我按照你的建议做,我有:
列未找到:1054未知列“sclr_8”在“where子句”
(sclr_8-我猜是平均等级)尝试
->where('avg(r.rating)>=:rating')