如何比较YII2中的两个数据库表字段?
问题描述:
假设我们有一个名为"appointment"
的表,它们的字段为"id"
,"date1"
和"date2"
。 最好使用ActiveRecord,我想要实现这个SQL语句:如何比较YII2中的两个数据库表字段?
select * from appointment where date1 <> date2
是否有可能做此例如使用ActiveRecord方法(Appointment :: find())还是应该传递可靠的SQL代码?
答
您可以使用SQL表达式这种情况下传递给任何给定的查询
Appointment::find()->where(new \yii\db\Expression('`date1` <> `date2`'))
答
我想你可以使用这样的事情,
Appointment::find()->andWhere('date1 <> date2')
->all();
是的,这也适用。但我们最好使用概念表达式,如在文档中提到的: “表达式表示一个不需要转义或引用的DB表达式。表达式对象主要用于将原始SQL表达式传递给yii \ db \ Query的方法, yii \ db \ ActiveQuery和相关的类“ – Rev