簡體   English   中英

在Laravel5雄辯的SQL查詢中實現IF語句

[英]Implement IF statement in SQL query in Laravel5 eloquent

我想在我的laravel應用程序中使用此查詢,但是我不知道如何編寫IF部分!

SELECT    
`users`.* ,    
IF(`friends`.`user_id` = '2' , TRUE , FALSE) AS `user_friend`         
FROM `users`    
LEFT JOIN `friends` ON `friends`.`friend_id` = `users`.`id`  AND `friends`.`user_id` = '2'    
WHERE `users`.`id` != '2'

您可以使用DB::raw

User::select(DB::raw('users.* , IF(friends.user_id = '2' , TRUE , FALSE) AS user_friend'))
->join('friends', 'friends.friend_id', '=', 'user.user_id')
->where('friends.user_id, 2)
->where('user.id', '!=', 2);

更新:

您可以看一下高級連接條款

->join('friends', function ($join) {
        $join->on('friends', 'friends.friend_id', '=', 'user.user_id')
             ->where('friends.user_id', 2);


    })

請嘗試以下完整查詢:

User::select(DB::raw("users.* , IF(friends.user_id = '2' , TRUE , FALSE) AS user_friend"))  
->join('friends', function ($join) {  
  $join->on('friends', 'friends.friend_id', '=', 'user.user_id')  
  ->where('friends.user_id', 2);  
});

這是@SteD答案進行更正后的版本。 希望這項工作對您有幫助!

暫無
暫無

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

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