Yii2 ActiveQuery 一列不等于另一列

我需要从数据库中选择列值不等于同一行的另一列的所有记录。在 SQL 中,它看起来像这样:

SELECT * FROM `user` WHERE (`created_at` != `logged_at`)

在 Yii2 中,我尝试这样做:

$query = User::find()->where(['!=', 'created_at', 'logged_at']);

但它会产生

SELECT * FROM `user` WHERE (`created_at` != 'logged_at')

所以,问题是,如何使用列名而不是字符串作为第三个参数?


料青山看我应如是
浏览 157回答 1
1回答

慕运维8079593

尝试使用yii\db\Expression类:$query = User::find()->where(new yii\db\Expression('created_at != logged_at');
打开App,查看更多内容
随时随地看视频慕课网APP