简体   繁体   English

在Zend Framework 2中使用MySQL Case语句

[英]Use MySQL Case statement in Zend Framework 2

I need to use CASE in my Zend Db Statemets, which looks like following: 我需要在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 .

Tried with query() but Zend doesn't recognize it as a function. 尝试使用query(),但Zend无法将其识别为功能。

Below is Zend Statement, in $select are all necessary configurations. 下面是Zend语句,在$select是所有必需的配置。 I know it doesn't work as it should, put there for example. 我知道它不能正常工作,例如放在那儿。

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

Any ideas how to implement CASE in Zend Query or how to do such a query would be helpfull. 如何在Zend Query中实现CASE或如何进行这种查询的任何想法都会有所帮助。

Zend_Db_Expr Zend_Db_Expr

Try: 尝试:

'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")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM