2017-10-18 43 views
1

set sender_id =(选择EXISTS(SELECT 1 FROM account WHERE account_id = p_sender_id));设置viewer_id =(选择EXISTS(选择1从account WHERE account_id = p_viewer_id));是否可以将MySQL中的select exists查询中的值分配给存储过程中的多个变量?

+0

的SENDER_ID和viewer_id变量都在我的存储过程。我想用一个查询来设置变量sender_id和viewer_id的值。我正在检查两个值是否存在于我的帐户表中,然后继续执行向另一个表中插入的操作。 –

回答

0

你可以这样做:

SELECT EXISTS(SELECT 1 FROM account WHERE account_id = p_sender_id)), 
     EXISTS(SELECT 1 FROM account WHERE account_id = p_viewer_id)) 
INTO sender_id, viewer_id; 

了解更多关于SELECT...INTO


回复您的评论:

如果你想运行一个子查询同时设置:

SELECT 
    MAX(CASE account_id WHEN p_sender_id THEN 1 ELSE 0 END), 
    MAX(CASE account_id WHEN p_viewer_id THEN 1 ELSE 0 END) 
INTO sender_id, viewer_id 
FROM account 
WHERE account_id IN (p_sender_id, p_viewer_id); 
+0

我尝试使用SELECT INTO,但从我看到并尝试过,查询将不得不重复。有没有办法在不重复查询的情况下完成我想要的操作? –

+0

新的查询完成了我想要的。 –

相关问题