2

任何人都可以帮助我如何在 MySQL 存储过程上有一个条件语句?

我有这个作为示例查询,

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

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

问题是如何在不重复整个查询的情况下仅替换一个单词而将其更改INNER JOINLEFT JOIN。假设我的查询是批量的。可能吗?请给点主意。

4

2 回答 2

4
SELECT *
FROM jobdetails jd
      LEFT JOIN taskslogs tl ON jd.jobID=tl.jobid
WHERE IF(isFirstTask = TRUE, TRUE, tl.jobid IS NOT NULL);
于 2012-06-04T18:26:19.963 回答
1

您可以将查询构建为存储过程中的字符串。在构建查询时,检查参数的值并决定使用哪个 JOIN。希望这可以帮助。

于 2012-06-04T18:26:28.127 回答