如何根据Mysql中的条件执行两个查询之一?

时间:2017-05-10 11:01:08

标签: mysql

是否可以根据条件执行两个查询之一? 伪代码示例:

IF condition
    SELECT a,b,c FROM table1
ELSE
    SELECT d,e,f FROM table2

P.S。我知道我可以在我的服务器代码中执行这个条件,但我正在寻找一个纯粹的Mysql解决方案。

2 个答案:

答案 0 :(得分:3)

你必须写一个stored procedure来完成纯MySQL,因为if语句只能在compound statement syntax中使用,而{{3}}只能在存储的程序中使用(程序,功能触发器)。由于您要执行=================B00C74D6-C3F1-4039-948B-0BAC59DC0D83=================== Cell text : "Ggg" Cell frame size : (320.0, 80.0) UITextView frame size : (240.0, 80.0) UITextView parent size : (240.0, 80.0) Cell content view frame size : (320.0, 80.0) ==================================== =================2704FFF5-17D1-4E0E-9399-DD7EB4C60D36=================== Cell text : "Zyehdhzhdhdhzhejajeksvshdjajdjhhhjhhjjhhhhthhytgjuhjjyghjuyghhuygghuutghjutghkiygvcwqazdxcfeerggvbhtyjjnkkuilloomppolpôkkjjîîîukhgkurghhhhhgoohgosohsohdohsohsohshowlhdlhslhslhsglslydlgsotwyod [...]" Cell frame size : (320.0, 411.5) UITextView frame size : (240.0, 411.5) UITextView parent size : (240.0, 411.5) Cell content view frame size : (320.0, 411.5) 语句,因此只能使用存储过程。

        <div id="tabs2">
          <ul>
            <li><a href="#tabs2-11">Attachments</a></li>
            <li><a href="#tabs2-21">Contacts</a></li>
            <li><a href="#tabs2-31">Link 3</a></li>
          </ul>
          <div id="tabs2-11"><iframe id="iframe1" width="100%" height="100%" frameborder="0" src="" /></div>
          <div id="tabs2-21">
             Some text
          </div>
          <div id="tabs2-31">...Phase 2</div>
    </div>

您将从代码中调用存储过程:

select

答案 1 :(得分:0)

我找到了另一个解决方案。可能不那么经济,但由于我在离线过程中使用小表,因此并不重要。对我来说,最好的是它不需要存储过程:

SELECT * FROM (
    SELECT a, b, c, 'Q_1' AS origin_query FROM table1
    UNION ALL
    SELECT d, e, f, 'Q_2' AS origin_query FROM table2
) temp
WHERE origin_query = IF (condition, 'Q_1', 'Q_2');