Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在对存储过程的重复调用中迭代列表_Mysql_Sql_Stored Procedures - Fatal编程技术网

Mysql 在对存储过程的重复调用中迭代列表

Mysql 在对存储过程的重复调用中迭代列表,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,在MySQL数据库中,如何通过遍历字符串列表来重复调用存储过程?列表中的每个字符串都是需要单独传递到过程中的参数。我在下面编写了一些伪代码,为每个字符串手动调用该过程,但是如何在MySQL兼容的SQL中重新编写它,以便在每次迭代字符串列表时,在每次增量调用该过程 DELIMITER $$ DROP PROCEDURE IF EXISTS `some_procedure`$$ CREATE PROCEDURE `some_procedure`(_paramname varchar(10)) BE

在MySQL数据库中,如何通过遍历字符串列表来重复调用存储过程?列表中的每个字符串都是需要单独传递到过程中的参数。我在下面编写了一些伪代码,为每个字符串手动调用该过程,但是如何在MySQL兼容的SQL中重新编写它,以便在每次迭代字符串列表时,在每次增量调用该过程

DELIMITER $$

DROP PROCEDURE IF EXISTS `some_procedure`$$
CREATE PROCEDURE `some_procedure`(_paramname varchar(10))
BEGIN
-- code for procedure omitted for clarity of question
END$$

SET @paramname = 'cat';
CALL `some_procedure`(@paramname)$$

SET @paramname = 'dog';
CALL `some_procedure`(@paramname)$$

SET @paramname = 'lizard';
CALL `some_procedure`(@paramname)$$

SET @paramname = 'chicken';
CALL `some_procedure`(@paramname)$$

DROP PROCEDURE IF EXISTS `some_procedure`$$

如果您在应用程序端执行此操作比在数据库端执行此操作要好得多。@Rahul谢谢,但这只是为了更好地理解我的数据,我本周在数据库中进行了一些挖掘。此代码不会成为永久应用程序的一部分。这在工作代码中最简单的是什么?如果你想在MySQL中这样做,那就是地狱。。。您必须按拆分,循环每个值并调用您的过程。相反,如果您使用编程语言来做。。。如果您选择PHP,这将非常简单。例如,web中有很多示例。此外,请尝试将编辑回滚到早期状态,因为您文章中的代码完全错误,它是MSSQL和MySQL语法的混合体。@Rahul谢谢,但这只是简单的数据探索,不需要从Java中查找调用它所需的所有JDBC内容。我重写了我的帖子,展示了每次手动调用过程的方法。手动调用比Java方法更容易,但是如果有一种SQL方法来迭代字符串列表,而不是重新设置字符串值,然后每次手动调用过程,那么会更干净。