首页 > 解决方案 > mysql过程if条件

问题描述

我有一个 mysql 程序,它不适用于 AND 的 IF 条件。我不确定什么是正确的语法。

 CREATE PROCEDURE insere_orcamento(
 IN ida VARCHAR(10),
 IN volta VARCHAR(10),
 OUT result INT
)
BEGIN

 IF (ida='sim' AND volta=NULL) THEN
    SET result = 50;
 ELSEIF (ida=NULL AND volta='sim') THEN
    SET result = 51;
 END IF;

END

标签: mysqlif-statementoperatorsprocedure

解决方案


必须使用 IS 检查值 NULL

或者像akina说的你也可以使用 <=>

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `insere_orcamento`(
 IN ida VARCHAR(10),
 IN volta VARCHAR(10),
 OUT result INT
)
BEGIN

 IF (ida='sim' AND volta IS NULL) THEN
    SET result := 50;
 ELSEIF (ida IS NULL AND volta = 'sim') THEN
    SET result := 51;
 END IF;

END$$
DELIMITER ;

推荐阅读