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 存储过程条件语句的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中的存储过程(详细篇)

MYSQL数据库重点:流程控制语句自定义函数存储过程触发器事件视图

MySQL存储过程循环遍历变量并插入临时表

存储过程之流程控制语句

MySQL 存储过程CASE语句用法

mysql -- 存储过程,游标