2017-02-23 97 views
-1
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值时,然后我需要得到receive_user_id如果receive_user_id是2,那么我需要得到send_user_idMySQL的语句或案例用条件

如何得到它?

+0

那么为什么PDO甚至在这里标记? –

回答

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的两个条件既不应该是真实的,但我们可以很容易地与其它逻辑代替这个,如果你提供。

+0

我把你的代码放在phpmyadmin SQL部分,但它显示我错误。 – Dhaval

+0

这是一个有效的MySQL查询。你一定在做错事。什么是错误信息? –

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 
+0

你能告诉我完整的查询与我的条件? – Dhaval

+0

如果(send_user_id == 2) 开始 SELECT * FROM receive_id其中send_user_id == 2 端 否则如果(receive_user_id == 2) 开始 SELECT * FROM send_user_id其中receive_user_id == 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. 

可能是其给予适当的回答。 格式代码正确。