如何在 MySQL 中将 IF 用于存储过程和 select 语句?
你可以在存储过程中使用 IF,也可以在 select 语句中使用 IF()。
select 语句中的 IF()
IF() in select statement mysql> select if(0=0,'Hello MySQL','condition is wrong');
这将生成以下输出 −
+------------------------------------------------------+ | if('test'='test','Hello MySQL','condition is wrong') | +------------------------------------------------------+ | Hello MySQL | +------------------------------------------------------+ 1 row in set (0.00 sec)
如果你的条件不正确,则出现第二种情况 −
mysql> select if(1=0,'Hello MySQL','condition is wrong');
这将生成以下输出 −
+--------------------------------------------+ | if(1=0,'Hello MySQL','condition is wrong') | +--------------------------------------------+ | condition is wrong | +--------------------------------------------+ 1 row in set (0.00 sec)
如果在存储过程中
用于创建存储过程的查询如下所示。在此,我们使用 IF 设置条件 −
mysql> DELIMITER // mysql> CREATE PROCEDURE if_demo(value int) BEGIN IF 1=value THEN SELECT "Hello MySQL"; ELSE SELECT "Wrong Condition"; END IF; END // Query OK, 0 rows affected (0.20 sec) mysql> DELIMITER ;
现在你可以使用 call 命令调用存储过程。
mysql> call if_demo(1);
这将生成以下输出 −
+-------------+ | Hello MySQL | +-------------+ | Hello MySQL | +-------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
如果你的条件为假 −
mysql> call if_demo(0);
这将生成以下输出 −
+-----------------+ | Wrong Condition | +-----------------+ | Wrong Condition | +-----------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
广告