在Zend Framework 2中使用MySQL Case语句

时间:2014-10-13 12:19:12

标签: php mysql zend-framework2

我需要在我的Zend Db Statemets中使用CASE,如下所示:

SELECT WHERE
   CASE 
      WHEN classified_fields_values.field_id = array(5, 6, 7) THEN classified_fields_values.value >= $min_value 
      WHEN classified_fields_values.field_id = 1 THEN classified_fields_values.value = $other_value  
END .

尝试使用query()但Zend不会将其识别为函数。

以下是Zend Statement,在$select中都是必要的配置。我知道它不能正常工作,举个例子。

$select
    ->joinRight('...', null)
    ->joinLeft('...', null)
    ->where('classified_fields_values.field_id IN (?)', $_array)
    ->where('classified_fields_values.value >= ?', $min_value)
    ->where('classified_fields_values.field_id = 8')
    ->where('classified_fields_values.value = ?', $other_value)

如何在Zend Query中实现CASE或如何进行此类查询的任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:1)

Zend_Db_Expr

尝试:

'final' => new Zend_Db_Expr("CASE classified_fields_values.alias WHEN classified_fields_values.field_id = array(5, 6, 7) THEN classified_fields_values.value >= $min_value")