根据Doctrine 2中的值自定义ORDER BY子句

时间:2011-08-08 20:48:44

标签: php mysql doctrine-orm

我正在尝试在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 '='

我发现由于与其他数据库系统的兼容性,这是不可能的。所以我的问题是:如何以其他方式直接在查询中进行此操作(如果可能)?

2 个答案:

答案 0 :(得分:-1)

好的,所以我对教义一无所知,但我会在黑暗中拍摄。你需要通过mysql中的函数订购的最终结果需要类似于ORDER BY FIELD(i.type,5,3,7)所以我猜你的行应该是$queryBuilder->orderBy("FIELD(i.type,5,3,7)");

答案 1 :(得分:-4)

嗯,最后,我没有想要的解决方案,但我必须做点别的事情。最后,结果是理想的结果。

我正常选择了数据,而不是通过数组并使用数组排序完成了这项工作。