当您只能传递一个参数时,具有多个参数的 MySQL 过程

标签 mysql

我创建了具有多个 IN 参数的 MySQL 过程。我想用很少的参数调用过程,但是当我将其他字段留空时,它会显示此错误:

DELIMITER $$ 
CREATE DEFINER=itzakeed_akeed@localhost PROCEDURE ApiKez(
IN Choice VARCHAR(100), 
IN ValidKey VARCHAR(100), 
IN azid INT(5), 
IN amts FLOAT(50)
) 
BEGIN 

DECLARE GetKey VARCHAR(100); 
DECLARE Balance FLOAT; 

CASE WHEN Choice='KeyCheck' THEN 
  SELECT COUNT(id) INTO GetKey 
  FROM users 
  WHERE api_key=ValidKey;

  if key is valid
  IF GetKey=1 THEN 
    SELECT * 
    FROM users 
    WHERE key=ValidKey; 
  ELSE 
    SELECT 0; 
  END IF; 
ELSE 
  SELECT "INVALID INPUT CHOICE"; 
END CASE; 
END
$$ 
DELIMITER ;

最佳答案

不,您不能调用参数少于所需参数的过程。但是,您可以传递 null 或空字符串,并检查参数是否具有存储过程中的值。

关于当您只能传递一个参数时,具有多个参数的 MySQL 过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53451483/

相关文章:

mysql - 来自 Sql 数据库的简单随机样本

Mysql 查询执行时间太长。为什么?

php - 我想计算表中一行中的所有数字?

php - 如何正确转义 JSON 字符串以便与 MySQL INSERT INTO 命令一起使用?

需要Mysql存储函数帮助

php - MySQL 按 asc 排序(如果优先级字段 1 移动到顶部)

mysql - SQL 查询 - 可能是错误的

php - MySQL查找2个日期是否在多行的日期范围之间

mysql - 对数据进行分组的 SQL 查询

php - 当名称包含撇号时,用于将通过表单提交的名称与 MySQL 数据库相匹配的脚本会中断