这项工作:
$qb = $this->em->createQueryBuilder();
$qb->select("abs(u.code) as code")
->from("User", "u")
->orderBy("code","ASC")
->getQuery()
->getArrayResult();
这不起作用:
$qb = $this->em->createQueryBuilder();
$qb->select("u.code")
->from("User", "u")
->orderBy("abs(u.code)","ASC")
->getQuery()
->getArrayResult();
错误:
语法错误]第0行,第118列:错误:应为字符串结尾,得到“(”
本土的教义功能abs只作用于部分陈述和
不要按部分顺序工作。
组织分解结构:
1-)Im避免使用NativeQuery。
2-)u.code是mysql上的一个varchar fild,需要是varchar(有时是数字,有时是字符串),我需要像数字大小写中的数字那样排序。
有什么帮助吗?
最佳答案
解决了atma thank的abs()
realy不是直接按orderBy工作,而是作为一个别名。
溶解
SELECT field1,field2,abs(field3) AS abs_field3
FROM table
ORDER BY abs_field3 ASC
Obs:这是一个条令限制,不是mysql限制,mysql支持abs直接按部分顺序。
关于php - Doctrine 2查询生成器ABS函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7532886/