MySQL:在程序中使用“ IF NOT IN”
作者:互联网
我正在尝试使用MySQL过程检查类,但以下过程始终返回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
当类不是(A,B和E)时,它应该返回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
标签:sql,mysql,stored-procedures 来源: https://codeday.me/bug/20191119/2032583.html