MySQL存储过程使用if子查询判断需要注意什么


这篇文章主要介绍了MySQL存储过程使用if子查询判断需要注意什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 MySQL存储过程
环境 5.6.14

drop procedure if exists p;
DELIMITER $$

CREATE PROCEDURE `p` ()
BEGIN
start transaction;
if(select 10 from dual where 1=1
select ‘true’;
else
select ‘false’;
end if;
commit;
END $$

DELIMITER ;

call p

有时候为了省事,在if中使用子查询返回一个值,然后做比较.
就像上述的测试过程.
但是实际执行的时候,过程返回true.基本上忽略了select 的结果,都进入了true的分支.

我觉得MySQL是把where后面的判断作为了比较的内容,上述过程比较的似乎是 if ((1=1)
解决这个问题的方法也很简单.给子查询加括号
子查询加了括号之后的结果,就正确了,如下图所示.

感谢你能够认真阅读完这篇文章,希望小编分享的“MySQL存储过程开发云主机域名使用if子查询判断需要注意什么”这篇文章对大家有帮助,同时也希望大家多多支持开发云,关注开发云行业资讯频道,更多相关知识等着你来学习!

相关推荐: Mysql5.7中如何搭建主从复制

这篇文章主要介绍了Mysql5.7中如何搭建主从复制,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。主从复制可以实现对数据库备份和读写分离:为了避免服务的不可用以及保障数据的安全可靠性,我们至少需…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/22 17:35
下一篇 06/22 17:35

相关推荐