您好我需要帮助MySQL中的嵌套if else语句。 请验证以下代码是否相同? C代码是我想在MySQL中完成的。我没有语法错误。但似乎我没有得到正确的结果。
MySQL存储过程
IF top10_rank <= 10 AND top100_rank <=10 THEN SET temp_rank = 10;
ELSE SET temp_rank = 100;
END IF;
IF temp_rank = 10 THEN
IF top10_rank_date > top100_rank_date THEN SET rank = top10_rank;
ELSE SET rank = top100_rank;
END IF;
ELSEIF temp_rank = 100 THEN SET rank = top100_rank;
ELSE SET rank = 0;
END IF;
C代码
if(top10_rank <= 10 && top100_rank <=10)
{
temp_rank = 10;
}
else
{
temp_rank = 100;
}
if(temp_rank == 10)
{
if(top10_rank_date > top100_rank_date)
{
rank = top10_rank
}
else
{
rank = top100_rank
}
}
else if(temp_rank == 100)
{
rank = top100_rank;
}
else
{
rank = 0;
}
答案 0 :(得分:1)
似乎这些部分是等价的,不考虑整数(?可能是浮点数)字段的大小和SQL中NULL值的处理。 代码看起来不太好:
1)此代码无法访问:
else
{
rank = 0;
}
2)可以缩短 - temp_rank可以内联
3)可能你需要使用这个函数是SELECT,它可以用CASE运算符重写 - 使调用更有效
4)要检测问题,请将C和SQL片段包装在函数中,并指定哪些输入参数结果不同。