2012-02-20 19 views
0

Drupal 7から新しくなったのはDrupal 6です.6ではカスタムモジュールを作成し、標準のdb_queryを使用してCCKフィールドを照会していました。そうすることで、JOINやLOWER(REPLACE(n.title, ' ', '_')) = '%s'のようなものを使うことができました。Drupal 7 EntityFieldQuery

EntityFieldQueryを使用する方法があるかどうかは疑問です。 EFQの背後にあるコンセプトはかなり単純ですが、フィールド条件に関しては、オペレータを使用して特定のフィールドの値のみをチェックできるようです。上記のコードを使用して、変換された値が自分の値と等しいかどうかを確認するにはどうすればよいですか?

クエリを実行してNIDとVIDを取得するために必要な情報がロードされるため、指定されたコンテンツタイプに必要なすべてを考慮しているため、JOINを使用する必要はありません。使用している:

$query->entityCondition('bundle', array('article', 'page')); 

$query->propertyCondition('type', array('article', 'page', 'blog')); 

効果的に同じA JOINステートメントを?両方のステートメントはNIDを使用してさまざまなコンテンツタイプに参加しますか?

おかげで、 ハウィーEntityFieldQueryの主な利点の

答えて

0

一つは、それはあなたが使用しているフィールドのバックエンドを気にしないということです。これを達成するために、MongoDBのようなバックエンドでも使えるオプションのサブセットをサポートしなければならないので、複雑な操作を提供しません。

フィールド値でSQLでこのような複雑なクエリを実行する必要がある場合は、おそらくフィールドスキーマを再考する方がよいでしょう。