【问题标题】:How to run select statements within true ,false conditions of select if()如何在 select if() 的真假条件下运行 select 语句
【发布时间】:2021-07-08 13:22:16
【问题描述】:

我正在尝试在 MYSQL DB 中运行如下查询。它不工作。谁能为此提供正确的语法?

SET @var="sql";
select if(@var==sql,
select col1,col2,col3 from tableA,
select col5,col6,col6 from tableB);

基本上我想根据@var 的值执行不同的查询。 如果@var='sql' 然后查询1 否则如果@var='mysql' 然后查询2 否则,如果 @var='oracle' 然后查询3

【问题讨论】:

    标签: mysql mysql-workbench


    【解决方案1】:
    select col1,col2,col3 from tableA WHERE @var = 'sql'
    UNION ALL
    select col1,col2,col3 from tableB WHERE @var != 'sql'
    

    如果condition IS NULL,则不会返回任何行 - 在这种情况下调整第二个子查询中的条件。

    【讨论】:

    • 我把问题更新了一点,你能帮忙吗。
    • @mohdaamerhussain 根据您的版本更新。
    • 它不起作用.. @var 不是任何表的列。那么这将如何工作?此外,两个表都已经存在条件,例如 'select col1,col2 from tableA where col6='XYZ';
    • 我试了几次,还是不行。请进一步协助
    • @mohdaamerhussain 小提琴已添加。
    【解决方案2】:

    您可以使用IF 语句代替IF 方法

    例如:

    IF @var="sql" THEN
       select col1,col2,col3 from tableA;
    ELSE
       select col5,col6,col6 from tableB;
    END IF;
    
    

    基于https://www.mysqltutorial.org/mysql-if-statement/(我不隶属于来源,但它帮助了我)

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 2011-08-08
      • 2013-09-21
      • 1970-01-01
      • 1970-01-01
      • 2018-12-05
      • 2013-04-19
      • 2016-05-21
      • 1970-01-01
      相关资源
      最近更新 更多