有人可以解释这是如何运作的吗?
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中走出来?别的怎么样?
此致 高塔姆
答案 0 :(得分:0)
您可以将ELSEIF
视为ELSE IF
:如果之前的IF
失败,它只会在那里。同样,它只会执行最终/独立ELSE
以前所有测试都失败。