MySQL if语句或case何时具有where条件

时间:2017-02-23 06:44:55

标签: mysql pdo

Table invitation (Primary key: invitation_id)                 

    ---------------------------------------------      
    invitation_id   send_user_id  receive_user_id     
    ---------------------------------------------      
     1                  2             1         
     2                  3             2           
     3                  2             7           
     4                  9             2
    --------------------------------------------- 

如果 send_user_id 值为 2 ,那么我需要 receive_user_id ,如果 receive_user_id 为2,那么我需要获取 send_user_id

如何获得这个?

3 个答案:

答案 0 :(得分:1)

使用CASE表达式:

SELECT invitation_id,
       CASE WHEN send_user_id = 2    THEN receive_user_id
            WHEN receive_user_id = 2 THEN send_user_id
            ELSE -1 END AS output
FROM invitation

请注意,如果两个条件都不成立,我将返回-1,但如果您提供,我们可以轻松地将其替换为其他逻辑。

答案 1 :(得分:0)

如果您有多个条件需要检查,请尝试使用嵌套的if else

if // your condition
begin
    //enter you code
end

else if //2nd condition
begin
    // your code
end
else //default condition if none of the above execute
begin 
    //default code
end

答案 2 :(得分:0)

SELECT invitation_id,
 CASE
 WHEN receive_user_id = 2 THEN send_user_id
 WHEN send_user_id = 2    THEN receive_user_id
 END AS output
FROM INVITATION.

可能会给出正确答案。 正确格式化代码。