【问题标题】:MySQL: use "IF NOT IN" in procedureMySQL:在过程中使用“IF NOT IN”
【发布时间】:2016-02-27 19:37:34
【问题描述】:

我正在尝试使用 MySQL 过程检查 class,但以下过程总是返回 0:

DELIMITER //
CREATE PROCEDURE `validate_class`(IN `class` INT)
BEGIN
    if(class NOT IN  ('A','B','E') ) then    
         select 1;
    else
         select 0;
    end if;
END //
DELIMITER ;

调用测试:

call validate_class('G'); //return 0
call validate_class('A'); //return 0

当类不存在时它应该返回1ABE),有什么帮助吗?

【问题讨论】:

    标签: mysql sql stored-procedures


    【解决方案1】:

    你有隐式转换CHAR -> INT -> CHAR

    更改参数数据类型:

    CREATE PROCEDURE `validate_class`(IN `class` CHAR(1))
    BEGIN
        if(class NOT IN  ('A','B','E') ) then    
             select 1;
        else
             select 0;
        end if;
    END 
    

    SqlFiddleDemo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 2015-02-09
      • 2019-07-15
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多