2014-02-28 81 views
0

你好我有一个工作查询,但我有点新的Zend我怎么能改变下面的查询到一个zend查询?如何将以下查询更改为Zend Framework(1)查询?

SELECT 
user_dob, 
user_dob + INTERVAL(YEAR(CURRENT_TIMESTAMP) - YEAR(user_dob)) + 0 YEAR AS currbirthday 
FROM user 
ORDER BY CASE WHEN currbirthday < CURRENT_TIMESTAMP 
THEN currbirthday + INTERVAL 1 YEAR 
ELSE currbirthday 
END 
LIMIT 4 
+0

无关的Zend的,这是我第一次看到这种计算用户的生日。 –

+0

它根据当前时间检查谁的生日是第一次。 – user3363940

+0

这是为zend框架1或2? –

回答

0

这样的事情?没有测试,

$select = $sql->select ('user'); 

$select->columns(array(
      'user_dob', 
      'currbirthday' => new Expression('user_dob + INTERVAL(YEAR(CURRENT_TIMESTAMP) - YEAR(user_dob)) + 0 YEAR'))) 
->order (
    new Expression(' 
     CASE WHEN currbirthday < CURRENT_TIMESTAMP 
     THEN currbirthday + INTERVAL 1 YEAR 
     ELSE currbirthday 
     END' 
    ) 
);