通过计算的字段在学说QueryBuilder中进行订购



我在我的一个实体中有以下字段: price(decimal)promo(boolean)promoPrice(decimal),我想按订单按实际价格进行查询,因此我需要像这样创建这样的查询:

SELECT *, (!promo*price + promo*promo_price) as real_price 
FROM `product` ORDER BY real_price ASC

有什么方法可以使用QueryBuilder或我需要使用一些本机方法?

解决方案:

$repository = $this->getDoctrine()->getRepository('AppBundle:Product');
$query = $repository->createQueryBuilder('p')
    ->addSelect('CASE WHEN p.promo = :value THEN p.promoPrice ELSE p.price END AS HIDDEN realPrice')
    ->setParameter('value', true)
    ->orderBy('realPrice', 'ASC')
    ->getQuery();

相关内容

  • 没有找到相关文章

最新更新