我正在尝试解决如何将我目前在 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