2013-06-16 2 views
0

Мне было интересно, может ли кто-нибудь рассказать мне, как написать следующий запрос, используя конструктор запросов L4.Laravel 4 - Написание запроса с использованием case

SELECT u.user_id,c.c_id,u.username,u.email 
FROM conversation c, users u 
WHERE CASE 
WHEN c.user_one = '$user_one' 
THEN c.user_two = u.user_id 
WHEN u.user_two = '$user_one' 
THEN c.user_one= u.user_id 
END 
AND (
c.user_one ='$user_one' 
OR c.user_two ='$user_one' 
) 
Order by c.c_id DESC 

Я не могу показаться, чтобы найти что-нибудь в l4 Дока о ДЕЛУ

Приветствия,

ответ

1

Laravel 4 не поддерживает это с помощью Query Builder. Однако вы можете использовать общую select функцию как таковой

$params = array($user_one, $user_one, $user_one, $user_one); 
$results = DB::select(
    "SELECT u.user_id, c.c_id, u.username, u.email 
    FROM conversation c, users u 
    WHERE 
     CASE 
      WHEN c.user_one = ? 
      THEN c.user_two = u.user_id 
      WHEN u.user_two = ? 
      THEN c.user_one = u.user_id 
     END 
     AND (
      c.user_one = ? 
      OR c.user_two = ? 
     ) 
    ORDER BY c.c_id DESC", 
    $params 
); 

Вы можете прочитать об этом на Laravels database documentation.

Смежные вопросы