繁体   English   中英

如何在dql(symfony2)中使用sql数学函数

[英]How to use sql math function in dql (symfony2)

我正在使用这个:

$query = $em->createQuery('select cp from Temp\TempAppBundle\Entity\ClinicProfile cp INNER JOIN cp.users u left JOIN cp.specializations s where cp.latitude is not null and cp.city = ?1 order by (sqrt(pow((radians(cp.longitude) - radians(?2))*cos(radians(cp.latitude)+radians(?3)), 2) + pow((radians(cp.latitude) - radians(?4)), 2))*6367)');

但是我收到了错误

[Syntax Error] line 0, col 172: Error: Expected end of string, got 'sqrt'

我如何在dql中使用sql函数?

Doctrine dql确实支持SQRT函数,但只支持SELECT,WHERE和HAVING子句,所以它在查询中不会出现在ORDER BY子句中。 dql没有明确支持其他函数POW,RADIANS和COS。

有一种方法可以将自己的函数添加到dql语言中(文档提供了一个MySQL FLOOR函数的示例 - 请参阅DQL文档的第13.5.5节)但是从文档中不清楚这些函数是否也仅限于SELECT ,WHERE和HAVING条款。

在这种情况下,另一种方法是使用Doctrine Native SQL

暂无
暂无

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

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