【问题标题】:Drupal 7 - EntityFieldQuery - use with mysql FIELD(...) for custom order byDrupal 7 - EntityFieldQuery - 与 mysql FIELD(...) 一起用于自定义订单
【发布时间】:2014-04-07 11:23:21
【问题描述】:

我对 Drupal 的 db api 很陌生,我正在使用一些遗留代码。我正在尝试使用自定义列表对 EntityFieldQuery 选择的节点进行排序。

MYSQL 等价物:

...
ORDER BY FIELD(tid, '44', '47', '21', '3' '36');

我似乎无法弄清楚如何使用 EntityFieldQuery 进行操作。我想我可以用fieldOrderBy(...)。而propertyOrderBy(...,...) 失败了。

非常感谢您的帮助,谢谢。

【问题讨论】:

    标签: mysql drupal-7


    【解决方案1】:

    我认为您应该能够通过将完整字段表达式作为要排序的列传递来使用propertyOrderBy。像这样:

    $query->propertyOrderBy("FIELD(tid, '44', '47', '21', '3' '36')", "asc");
    

    不过,我知道,如果 Drupal 确定它应该调用 propertyQuery,这将失败,因为它希望将基表附加到排序列。

    如果这不起作用,您可能只是构建自己的原始查询来获取所需的数据。

    【讨论】:

    • 我试过了,但失败了,我最终会在数据库之外做其他事情。还是谢谢!
    猜你喜欢
    • 2012-10-14
    • 2014-01-30
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多