我正在尝试在Doctrine 2中使用自定义排序(使用MySQL)。代码看起来像这样:
$queryBuilder->orderBy("i.type = 5, i.type = 3, i.type = 7");
我得到的错误就是这个:[Syntax Error] line 0, col 72: Error: Expected end of string, got '='
。
我发现由于与其他数据库系统的兼容性,这是不可能的。所以我的问题是:如何以其他方式直接在查询中进行此操作(如果可能)?
答案 0 :(得分:-1)
ORDER BY FIELD(i.type,5,3,7)
所以我猜你的行应该是$queryBuilder->orderBy("FIELD(i.type,5,3,7)");
答案 1 :(得分:-4)
嗯,最后,我没有想要的解决方案,但我必须做点别的事情。最后,结果是理想的结果。
我正常选择了数据,而不是通过数组并使用数组排序完成了这项工作。