-1

假设我有一个查询

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

是否可以知道正在执行查询的哪一部分?例如,下面的示例应该告诉 1 是否(userid=1 and friend=2)满足或告诉 2 是否(friend=2 and userid=1 )执行部分。

//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 回答