【问题标题】:MySQL Stored Procedure Conditional StatementMySQL 存储过程条件语句
【发布时间】: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 而无需重复整个查询来替换一个单词。假设我的查询是批量的。是否可以?请给点意见。

【问题讨论】:

    标签: mysql conditional stored-functions


    【解决方案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。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2012-08-17
        • 1970-01-01
        • 2011-08-19
        • 2011-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-21
        • 1970-01-01
        相关资源
        最近更新 更多