我将在yii2中执行以下查询.
$result = MyModel::find()->where(['res_model'=>$res_model])->all();
上面的查询和这一个查询有什么区别:
$result = MyModel::find()->where( 'res_model = :res_model',[
':res_model' => $res_model] )->all();
两者都运行良好,但在性能和可用性方面都有点混乱.
请问有谁可以澄清这些吗?
最佳答案 将执行相同的查询.
如果您有多个key = value条件,则第一个版本很有用.
如果您需要执行更复杂的查询,可以使用第二个版本.像这样的东西
$result = MyModel::find()->where('some_field = (select max(date) from another_table where another_field=:param)',['param' => $param])->all();
性能和安全性是一样的.