で空のフィールドを持つ行をフィルタリング、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. PHP配列基準で並べ替え
- 3. 並べ替え優先度に基づいて並べ替え
- 4. Laravelビュー、2つの基準に基づいて並べ替え
- 5. 選択並べ替え並べ替え
- 6. 並べ替えで並べ替え
- 7. 2番目の基準の後で並べ替えられたリストを並べ替える
- 8. 時間を基準にしてjsonオブジェクトを並べ替えた後、順序として並べ替える
- 9. MarkLogic node.js api - グループを並べ替え、並べ替えで並べ替え
- 10. C++の選択並べ替えなし並べ替え並べ替えなし
- 11. linq2SQL + [並べ替え基準文字列値
- 12. XMLノードを複数の基準で並べ替えます
- 13. 辞書のリストを2つの基準で並べ替え
- 14. Grailsの基準で複数のフィールドを並べ替える
- 15. Riakでデータを並べ替え/並べ替える方法は?
- 16. スコアに基づく並べ替え
- 17. 値に基づいた並べ替え
- 18. 基数C++で並べ替え
- 19. 並べ替えコスト
- 20. 並べ替え列
- 21. Laravelの複数の基準に基づいてコレクションを並べ替える
- 22. ヒープの並べ替えと挿入の並べ替え
- 23. Eclipseエクステンションポイントのエクステンションの並べ替え/並べ替え
- 24. 未定義列の並べ替え/並べ替え(LINQ \ Entity Framework)
- 25. VBA - ドラッグ&ドロップによる並べ替えの並べ替え
- 26. jQuery Sortable入力名の並べ替えと並べ替え
- 27. DB内での並べ替えとアプリケーションの並べ替え
- 28. C#使用方法パブリッククラスオブジェクトの並べ替え/並べ替え
- 29. Collections並べ替えて両方のArrayListを並べ替える
- 30. Facebook API -/taggable_friendsエンドポイントの並べ替えを並べ替える
drupal.orgを検索して気付いたことがあるように、あなたの問題はワームの可能性があります。あなたのフィールドをヌル可能にすることはできますか? – pamatt
絶対に、それは本当に悪いです!これを回避する方法はまったくありません。 –
もし私たちがMysqlに関して語っているのであれば、 'field_code IS NULL'のような順序条件を追加すべきです。しかし、EFQについて話したら、それは簡単ではありません。おそらく、あなたはhook_entity_query_alterを使ってEFQを変更し、独自の関数にqueryCallbackを変更することができます。 – Maxim