概述
因为循环的建议意味着对过程类型解决方案的请求。这是我的。
对从表取得的任何单个记录起作用的任何查询都可以包装在过程中,以使其通过表的每一行运行,如下所示:
DROP PROCEDURE IF EXISTS ROWPERROW;
DELIMITER ;;
然后这里的过程如你的示例(table_A和table_B用于清晰)
CREATE PROCEDURE ROWPERROW()
BEGIN
DECLARE n INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
SELECT COUNT(*) FROM table_A INTO n;
SET i=0;
WHILE i
INSERT INTO table_B(ID, VAL) VALUES(ID, VAL) FROM table_A LIMIT i,1;
SET i = i + 1;
END WHILE;
End;
;;
然后不要忘记重置分隔符
DELIMITER ;
并运行新的过程
CALL ROWPERROW();
您可以在“INSERT INTO”行执行任何您喜欢的操作,我只是从您的示例请求中复制。
请注意,此处使用的“INSERT INTO”行反映问题中的行。根据对此答案的注释,您需要确保您的查询在语法上正确运行的SQL的哪个版本。
在简单的情况下,您的ID字段增加并从1开始,示例中的行可能变为:
INSERT INTO table_B(ID, VAL) VALUES(ID, VAL) FROM table_A WHERE ID=i;</
最后
以上就是幽默乐曲为你收集整理的mysql按行循环_如何循环遍历表的所有行? (MySQL)的全部内容,希望文章能够帮你解决mysql按行循环_如何循环遍历表的所有行? (MySQL)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复