Symfony2 + Doctrine + case case: how to make a case statement in DQL or another?

I need to use case statements in my query builder ...

My query looks something like this:

  $query = $this->getEntityManager('V')->createQuery( 'SELECT V, (CASE unit WHEN "DAY" THEN DATE_ADD( NOW() , INTERVAL start_date DAY ) WHEN "MONTH" THEN DATE_ADD( NOW() , INTERVAL start_date MONTH ) WHEN "YEAR" THEN DATE_ADD( NOW() , INTERVAL start_date YEAR ) END as startDate ) FROM AppMyBundle:Entity V WHERE 1=1 ORDER BY date ASC' ); 

Please note that this is correct in MySQL.

I don’t know how to solve it ...

If you have another idea, feel free to help me :)

Any idea?

+1
source share
1 answer
 $query = $this->getDoctrine()->getEntityManager()->getConnection()->prepare( "SELECT V.id, (CASE WHEN "DAY" THEN DATE_ADD( NOW() , INTERVAL start_date DAY ) WHEN "MONTH" THEN DATE_ADD( NOW() , INTERVAL start_date MONTH ) WHEN "YEAR" THEN DATE_ADD( NOW() , INTERVAL start_date YEAR ) END as startDate ) FROM table_name V WHERE V.id = :id ORDER BY date ASC" ); $query->bindValue('id', $id); $query->execute(); $results = $query->fetchAll(); 

Try this, I hope this works for you Thanks, Ashok Chitroda

0
source

Source: https://habr.com/ru/post/1441255/


All Articles