で空のフィールドを持つ行をフィルタリング、IのようなEFQ要求を有しています。このフィールドで注文すると、ヌル値を持つすべての行が除外されます。この行動を避け、結果にとどまる方法を教えてください。並べ替え基準は、例えばEntityFieldQuery
5
A
答えて
3
最近、db_select()を使用し、isNullとisNotNullにdb_or()を渡すだけで、このような問題を解決する必要がありました。私はEFQがあなたが必要とするものを実行するのに十分な柔軟性を持っているとは思わない。この線に沿って何か作業をする必要があります。しかし
$query = db_select('node', 'n')
->fields('n')
->condition('n.type', 'contenttype')
->condition('n.status', 1)
->leftJoin('field_data_field_code', 'c', 'n.nid = c.entity_id')
->fields('c');
$db_or = db_or();
$db_or->isNull('c.field_code_value');
$db_or->isNotNull('c.field_code_value');
$query->condition($db_or);
$query->orderBy('c.field_code_value', 'DESC');
$results = $query->execute()->fetchAllAssoc('nid');
if ($results) {
$nodes = node_load_multiple(array_keys($results));
return $nodes;
}
一つの質問は - なぜあなたはあなたの例では2つの異なるフィールドで注文しようとしているされていますか?
+0
私はそれをできるだけ早く試してみよう! 私は似たようなことを書こうとしましたが、EFQでdb_or()を使用することは不可能です。 日付とコードでノードを注文する必要があるので、私たちはそれを注文する必要があります –
+0
はい、それは動作しますが、EFQではありません。 –
関連する問題
- 1. 並べ替えで並べ替え
- 2. Grailsの基準で複数のフィールドを並べ替える
- 3. linq2SQL + [並べ替え基準文字列値
- 4. Riakでデータを並べ替え/並べ替える方法は?
- 5. スコアに基づく並べ替え
- 6. 基数C++で並べ替え
- 7. 並べ替えコスト
- 8. 並べ替えメソッドを持つ人物の並べ替え
- 9. Laravel 4.2並べ替えの関係による並べ替え
- 10. Spark DataFrame group降順で並べ替えて並べ替え
- 11. ASPxPivotGridカスタム並べ替え/並べ替えを削除する
- 12. VBA - ドラッグ&ドロップによる並べ替えの並べ替え
- 13. Eclipseエクステンションポイントのエクステンションの並べ替え/並べ替え
- 14. UITableView並べ替えのような並べ替え
- 15. どのように並べ替えまたは並べ替えをJavaランタイムの並べ替えを使用して(近接に基づいて)
- 16. Jqueryデータテーブルの日付列の並べ替えではない最近の日付に基づく並べ替え
- 17. 並べ替えの生成
- 18. Webアプリケーションの並べ替え
- 19. 並べ替えの問題
- 20. アルファベット順の並べ替え
- 21. JQueryドラッグ、ドロップ、並べ替え
- 22. Fullcalendarイベントを並べ替え
- 23. Rマルチカラムデータの並べ替え
- 24. Riak並べ替えでMapReduce
- 25. Drupalナビゲーションメニューの並べ替え
- 26. バブル並べ替え番号
- 27. 番号の並べ替え
- 28. 距離で並べ替え
- 29. SortableTableのカスタム並べ替え
- 30. プロジェクトを並べ替える
drupal.orgを検索して気付いたことがあるように、あなたの問題はワームの可能性があります。あなたのフィールドをヌル可能にすることはできますか? – pamatt
絶対に、それは本当に悪いです!これを回避する方法はまったくありません。 –
もし私たちがMysqlに関して語っているのであれば、 'field_code IS NULL'のような順序条件を追加すべきです。しかし、EFQについて話したら、それは簡単ではありません。おそらく、あなたはhook_entity_query_alterを使ってEFQを変更し、独自の関数にqueryCallbackを変更することができます。 – Maxim