現在db_queryで使用している次のコードをdb_selectに変換する方法を考えています。クエリは、現在ログインしているユーザーとの一致度によってユーザーを並べ替えます。また、一部の WHERE ステートメントを使用して、完全に互換性のないユーザーを削除してから、残りを計算による順序で実行してクエリを高速化するため、選択式として実行したくありません。
ORDER BY (10*(s.field_smoker_value * :field_smoker_pref_value) +
10*(sp.field_smoker_pref_value * :field_smoker_value) +
15*(p.field_pet_value * :field_pet_pref_value) +
15*(pp.field_pet_pref_value * :field_pet_value) +
5*(c.field_couple_value * :field_couple_pref_value) +
5*(cp.field_couple_pref_value * :field_couple_value))ASC