首页 > 解决方案 > 如何在 select if() 的真假条件下运行 select 语句

问题描述

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

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

基本上我想根据@var 的值执行不同的查询。if @var='sql' then query1 else if @var='mysql' then query2 else if @var='oracle' then query3

标签: mysqlmysql-workbench

解决方案


select col1,col2,col3 from tableA WHERE @var = 'sql'
UNION ALL
select col1,col2,col3 from tableB WHERE @var != 'sql'

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


推荐阅读