MYSQL中的流量控制

时间:2017-01-09 12:02:39

标签: mysql

我正在尝试将SQL Server查询转换为MYSQL,但是我遇到了IF语句的问题。在SQL Server版本中,它们用于根据标志指示查询流,但我不能让它在MYSQL中工作。我已经概述了代码如何在下面工作:

该脚本根据查询与数据库之间可以匹配的数据来设置标记。

然后根据标志执行select语句:if flag = 1选择a,b,c,其中匹配逻辑

否则如果flag = 2则选择d,e,f其中不同的匹配逻辑

我尝试过使用IF和CASE WHEN,但两者都不起作用。我通常会将IF放在WHERE子句中,但根据标志选择不同的列。

是否有一个函数可以执行IF / ELSE流程MYSQL?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

假设列的类型和数量兼容,您可以这样做:

select a, b, c
from t
where (v_flag = 1) and match_condition_1
union all
select d, e, f
from t
where (v_flag = 2) and match_condition_2;

另一种方法是使用存储过程。在MySQL中,if控制流语句仅允许在编程块中 - 存储过程,存储函数和触发器。