[英]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.