我很熟悉Drupal的db api,我正在使用一些遗留代码。我正在尝试使用自定义列表对我的 EntityFieldQuery 选择的节点进行排序。
MYSQL等价物:
...
ORDER BY FIELD(tid, '44', '47', '21', '3' '36');
我似乎无法弄清楚如何使用EntityFieldQuery来实现它。我以为我可以用fieldOrderBy(...)。 propertyOrderBy(...,...)
失败了。
非常感谢帮助,谢谢。
答案 0 :(得分:0)
我认为您应该能够通过将完整字段表达式作为要排序的列来使用propertyOrderBy。像这样:
$query->propertyOrderBy("FIELD(tid, '44', '47', '21', '3' '36')", "asc");
我知道,如果Drupal确定它应该调用propertyQuery,那么这将失败,因为它会想要将基表附加到排序列。
如果这不起作用,您可能只是构建自己的原始查询以获取所需的数据。