我需要编写如下所示的查询:
(WHERE metrics = kg&& quantity< xx)|| (WHERE metrics = lbs&& quantity<(xx * 2.2046))
这可能与Yii Active Record有关,如果可以吗?
答案 0 :(得分:7)
根据您使用query builder的方式,有很多选项。以下是一些:
1)您可以将条件作为字符串插入:
UINavigationBar
2)或者按Product::find()->where("(metrics = 'kg' AND quantity < :quantity)
OR (metrics = 'lbs' AND quantity < :quantity_lbs))",
[":quantity" => $quantity, ":quantity_lbs" => $quantity * 2.2]
)->all();
:
OR
3)或使用operators:
Product::find()->where("(metrics = 'kg' AND quantity < :quantity)")
->orWhere("(metrics = 'lbs' AND quantity < :quantity_lbs)")
->addParams([":quantity" => $quantity, ":quantity_lbs" => $quantity * 2.2])
->all();
我选择第二个选项。它是最易读的,也更容易维护。