MySQL存储过程使用if子查询判断需要注意什么
发布时间:2022-01-12 11:11:38 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍了MySQL存储过程使用if子查询判断需要注意什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 MySQL存储过程 环境 5.6.14 drop procedure if exists p; DELIMITER $
这篇文章主要介绍了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 < 5 ) then select 'true'; else select 'false'; end if; commit; END $$ DELIMITER ; call p 有时候为了省事,在if中使用子查询返回一个值,然后做比较. 就像上述的测试过程. 但是实际执行的时候,过程返回true.基本上忽略了select 的结果,都进入了true的分支. 我觉得MySQL是把where后面的判断作为了比较的内容,上述过程比较的似乎是 if ((1=1)<5),所以无论查询的是什么,都进入了true的分支 解决这个问题的方法也很简单.给子查询加括号 感谢你能够认真阅读完这篇文章,希望小编分享的“MySQL存储过程使用if子查询判断需要注意什么”这篇文章对大家有帮助。 (编辑:海南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐