【问题标题】:Yii2 ActiveQuery one column not equal anotherYii2 ActiveQuery 一列不等于另一列
【发布时间】:2019-12-05 14:00:20
【问题描述】:

我需要从数据库中选择列值不等于同一行的另一列的所有记录。在 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')

那么,问题来了,如何使用列名代替字符串作为第三个参数?

【问题讨论】:

    标签: php mysql activerecord yii2


    【解决方案1】:

    尝试使用yii\db\Expression类:

    $query = User::find()->where(new yii\db\Expression('created_at != logged_at');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 2015-07-31
      • 2022-10-18
      • 1970-01-01
      • 2021-12-01
      • 2022-10-06
      • 1970-01-01
      相关资源
      最近更新 更多