MySQL 存储过程条件语句
Posted
技术标签:
【中文标题】MySQL 存储过程条件语句【英文标题】:MySQL Stored Procedure Conditional Statement 【发布时间】:2012-06-04 18:23:54 【问题描述】:谁能帮助我了解如何在 mysql 存储过程上使用条件语句?
我有这个作为示例查询,
如果我的存储过程参数isFirstTask = true
,那么我将使用LEFT JOIN
,否则我将使用INNER JOIN
SELECT *
FROM jobdetails jd
INNER JOIN taskslogs tl ON jd.jobID = tl.jobid;
问题是如何将INNER JOIN
更改为LEFT JOIN
而无需重复整个查询来替换一个单词。假设我的查询是批量的。是否可以?请给点意见。
【问题讨论】:
【参考方案1】:SELECT *
FROM jobdetails jd
LEFT JOIN taskslogs tl ON jd.jobID=tl.jobid
WHERE IF(isFirstTask = TRUE, TRUE, tl.jobid IS NOT NULL);
【讨论】:
【参考方案2】:您可以将查询构建为存储过程中的字符串。在构建查询时,检查参数的值并决定使用哪个 JOIN。希望这会有所帮助。
【讨论】:
以上是关于MySQL 存储过程条件语句的主要内容,如果未能解决你的问题,请参考以下文章