簡體   English   中英

Yii2 ActiveQuery 一列不等於另一列

[英]Yii2 ActiveQuery one column not equal another

我需要 select 來自數據庫的所有記錄,其中列值不等於同一行的另一個記錄。 在 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');

Andrii Filenko 提供的答案在技術上是正確的,但包含一些語法錯誤。 它應該是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM