-1

クエリがあるとします

create table friends (
userid int,
friend int,
status int 
);

クエリのどの部分が実行されているかを知ることは可能ですか? たとえば、次の例では、(userid=1 and friend=2)満たされている場合は1 を、(friend=2 and userid=1 )部分が実行されている場合は 2 を通知する必要があります。

//wrong example
select status,@var 
  from friends 
 where @var:=(userid=1 and friend=2) 
    or @var:=(friend=2 and userid=1 );
4

1 に答える 1

3

これがあなたが探しているものだと思います:

SELECT status,
    CASE 
    WHEN (userid=1 and friend=2) THEN 'opt1'
    WHEN (friend=2 and userid=1) THEN 'opt2'
END AS 'var'
FROM friends 
WHERE userid IN (1, 2) 
    OR friend IN (1, 2)
于 2013-04-29T02:42:02.630 に答える