Php Zend框架按案例分组
我在使用zend framework mysql groupby查询时遇到问题。我试图实现的是这个查询Php Zend框架按案例分组,php,mysql,sql,zend-framework,Php,Mysql,Sql,Zend Framework,我在使用zend framework mysql groupby查询时遇到问题。我试图实现的是这个查询 SELECT * FROM `price_list` AS `pl` GROUP BY CASE WHEN `pl`.`sub_folder` IS NULL THEN `pl`.`id` ELSE `pl`.`sub_folder` END ORDER BY `pl`.`date_added` DESC 这是我用zend的方式尝试的 $sql = $this->sele
SELECT * FROM `price_list` AS `pl`
GROUP BY
CASE WHEN `pl`.`sub_folder` IS NULL THEN
`pl`.`id`
ELSE
`pl`.`sub_folder`
END
ORDER BY `pl`.`date_added` DESC
这是我用zend的方式尝试的
$sql = $this->select()->setIntegrityCheck(false);
$sql->from(array('pl'=>$this->_name), array(''))
->columns($cols)
->group("case when pl.sub_folder is null then pl.id else pl.sub_folder end");
但在case条件下,输出的sql字符串带有错误的引号:
SELECT * FROM `price_list_pdf` AS `pl`
GROUP BY `CASE WHEN pl`.`sub_folder is null then
pl`.`id
ELSE
pl`.`sub_folder
end`
ORDER BY `pl`.`date_added` DESC
如何清除字符串中的`呢?还是有更好的办法?请帮助..对于未替换的查询,请使用
表达式
$sql = $this->select()->setIntegrityCheck(false);
$sql->from(array('pl'=>$this->_name), array(''))
->columns($cols)
->group(new Zend_Db_Expr("case when pl.sub_folder is null then pl.id else pl.sub_folder end"));
您是否尝试从组语句中删除单引号?是的,实际上我是通过添加这些单引号来进行测试的。我认为您的SQL不正确。尝试删除单引号,除了aliases@Aditya是的,我试过不使用单引号,但是这个引号仍然在增加,非常有效!我用了“new Zend_Db_Expr”来代替。可能是“新表达式”适用于2.0版+哦,我的错,是的,我想你使用的是zf2(没有看到任何相关的zf1结构)…确定zf1就像你说的Zend\u Db\u Expr
-基本过程是一样的