任何人都可以解释这将如何工作? - 如果我的SQL中还有elseif

时间:2014-09-01 14:58:50

标签: if-statement

有人可以解释这是如何运作的吗?

        IF (p_market_id <>0) THEN
            SET v_cont := CONCAT(v_cont,' and mrkt.location_id = ', p_market_id); 
        ELSEIF (p_region_id <>0) THEN
            SET v_cont := CONCAT(v_cont,' and reg.location_id = ', p_region_id); 
        ELSE    
            SET v_cont := CONCAT(v_cont,' and 1=1'); 
        END IF; 

第一行是明确的:即如果market_id&lt;&gt; 0然后将v_cont设置为给定 但是我想知道的是,它是否会转移到随后的ELSEIF,还是会从if中走出来?别的怎么样?

此致 高塔姆

1 个答案:

答案 0 :(得分:0)

您可以将ELSEIF视为ELSE IF:如果之前的IF失败,它只会在那里。同样,它只会执行最终/独立ELSE以前所有测试都失败。