开发者社区> 问答> 正文

PHP SQL查询报错?报错

代码如下:用上面注释掉的SQL没问题,用下面的SQL执行。报截图中的错误,但是打印的SQL在MySQL中却能执行。求解!

public function getCount()
    {
//        $hql = "SELECT DATE_FORMAT(a.createtime,'%Y') FROM " . self::getClassName() . " a GROUP BY DATE_FORMAT(a.createtime,'%Y')";
        $hql = " SELECT DATE_FORMAT(a.createtime, '%Y'), " .
            "SUM(CASE WHEN a.flag = 0 OR a.flag = 1 OR a.flag = 4 OR a.flag = 7 OR a.flag = 8 OR a.flag = 13 THEN 1 ELSE 0 END) " .
            "AS 'num',SUM(CASE WHEN a.flag = 9 OR a.flag = 10 THEN 1 ELSE 0 END) AS 'call_num', " .
            "SUM(CASE WHEN a.flag = 2 OR a.flag = 3 OR a.flag = 5 OR a.flag = 11 OR a.flag = 12 THEN 1 ELSE 0 END) " .
            "AS 'early_num' FROM " . self::getClassName() ." a GROUP BY DATE_FORMAT(a.createtime, '%Y')";
//        var_dump($hql);
//        die;
        return $this->getModelsManager()->createQuery($hql)->execute();
    }

展开
收起
爱吃鱼的程序员 2020-06-08 16:04:20 896 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    Phalcon的ORM框架不支持CASEWHEN语句的,直接用原生的吧,或者使用IF函数替换CASEWHEN语法。

    Phalcon的ORM也不支持MySQL5.7的json语法,不过我自己写了简易的词法分析代码解决了。

    多谢解答!这么复杂的用rawdb直接查询不要用phsql
    2020-06-08 16:04:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载