我需要从数据库中选择所有记录,其中列值不等于同一行的另一个记录。在 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')
那么,问题是,如何使用列名而不是字符串作为第三个参数?
最佳答案
尝试使用yii\db\Expression类:
$query = User::find()->where(new yii\db\Expression('created_at != logged_at');
关于php - Yii2 ActiveQuery 一列不等于另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59196838/