MySQL存储过程条件语句

时间:2012-06-04 18:23:54

标签: mysql conditional stored-functions

任何人都可以帮助我如何在MySQL存储过程中获得条件语句?

我将此作为示例查询,

如果我的存储过程参数isFirstTask = true,那么我将使用LEFT JOIN否则我将使用INNER JOIN

SELECT *
FROM jobdetails jd
INNER JOIN taskslogs tl ON jd.jobID = tl.jobid;

问题是如何将INNER JOIN更改为LEFT JOIN而不重复整个查询只是为了替换一个单词。假设我的查询是批量的。可能吗?请一些想法。

2 个答案:

答案 0 :(得分:4)

SELECT *
FROM jobdetails jd
      LEFT JOIN taskslogs tl ON jd.jobID=tl.jobid
WHERE IF(isFirstTask = TRUE, TRUE, tl.jobid IS NOT NULL);

答案 1 :(得分:1)

您可以将查询构建为存储过程中的字符串。构建查询时,请检查参数的值并确定要使用的JOIN。希望这会有所帮助。