我需要在我的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或如何进行此类查询的任何想法都会有所帮助。
答案 0 :(得分:1)
尝试:
'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")