php - Yii2 ActiveQuery 一列不等于另一列

标签 php mysql activerecord yii2

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

相关文章:

mysql - 使用 Laravel 将图片存储到 mysql

ruby-on-rails - Ruby on Rails 中属性包装器的设计模式

ruby-on-rails - 获取 has_many 关联时出错,TypeError : can't convert String into Integer

php - nginx 错误 : "No input file specified" when website in subdirectory

php - Yii2 : Checkbox rules not working at signup for terms and conditions

php - 在 Laravel 5.1 中将查询生成器条件设置为模型

php - 在 PHP 函数 for 循环中将 mysql result() 转换为 mysqli

php - 从类别树中清除空类别

php - 用于从数据库中搜索的搜索算法或工具

ruby-on-rails - 根据父模型验证模型