php - Zend Framework 分组案例

标签 php mysql sql zend-framework

我在使用 zend 框架 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->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

如何清除字符串中的这个`?或者有什么更好的方法吗?请帮助..

最佳答案

对于未转义的查询,使用Expressions like

$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"));

关于php - Zend Framework 分组案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20465009/

相关文章:

mysql concat 列名

mysql - SQL 返回重复结果

php - 进行ajax调用时如何在cakephp中的过滤器之前跳过

mysql - 如何连接具有多个条件的多个表

php - OMDb API 多个结果

PHP/MySQL : Import data and store in hierarchical nested set for use with jsTree

MySQL 在更新期间将我的 JSON 对象解释为字符串

带有 where 子句的 MySQL group_concat

php - 安全性:如何验证图像文件上传?

php - 未找到 Facebook InsightsPresets