将 IF 子句添加到 zend framework 1 数据库 table select 对象

Adding IF clause to zend framework 1 database table select object

这是我的 sql:

    SELECT id,`status`,IF(`status` = 'active', 'deleted','active') AS `status-use`
    FROM categories

这是我的代码:(ActionResourceModel 是一个 Zend_Db_Table

            $dbTable = $this->getActionResourceModel();
            $select = $dbTable->select();
            $select->from($dbTable,$this->getQueryColumns());
            $select->order($orderClause.' '.$orderSpec);

如何添加到我的 select 对象:

IF(`status` = 'active', 'deleted','active') AS `status-use`

您的 select 应如下所示:

$dbTable = $this->getActionResourceModel();
$select = $dbTable->select();
$select->from(
        $dbTable, 
        array(
            'status-use' => new Zend_Db_Expr("IF(`status` = 'active', 'deleted','active')"
        )
);

您可以从 Zend_Db_Table 扩展并定义一个函数来创建此查询。您可以看到 Zend_Db_Table 函数,例如 joinfrom 等,用于设计您的特殊 class