存储过程mysql从每一行返回每个结果列
Posted
技术标签:
【中文标题】存储过程mysql从每一行返回每个结果列【英文标题】:stored procedure mysql returning each result column from each row 【发布时间】:2020-05-01 22:05:42 【问题描述】:我希望存储过程返回我选择的每一列的值。
我有第 1 列第 2 列和第 3 列的客户表。 我有一个返回 10 行的选择,我想为每一行获取第 1 列、第 2 列和第 3 列的结果。
我该怎么做?
BEGIN
DECLARE n INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
DECLARE col1 INT DEFAULT 0;
DECLARE col2 VARCHAR(10) DEFAULT "";
DECLARE col3 INT DEFAULT 0;
SELECT COUNT(*) into n FROM customer;
set i=1;
WHILE i<=n DO
SELECT column1 FROM customer WHERE id=i INTO col1;
SELECT column2 FROM customer WHERE id=i INTO col2;
SELECT column3 FROM customer WHERE id=i INTO col3;
SET i = i + 1;
END WHILE;
END
如何获取 col1、col2 和 col3 的每个值以显示并用于下一次处理。
如何在 mysql 中调用这个存储过程?
【问题讨论】:
请您扩展您的倒数第二句话 - 一个简单的选择将显示列,因此我不明白问题是什么或您的下一次治疗是什么意思。 mysql调用过程名称(参数)中的“我如何调用” @P Salmon 在这句话中“我如何让每个值 col1、col2 和 col3 显示它并用于下一次处理。”,我说我想显示 col1 的值,col2 和 col3 。我想看这个内容。我的问题是如何完成我的存储过程并使用参数调用它?如果你有一个想法,你能告诉我吗 我第一条评论的最后一句告诉你如何调用存储过程,这里重复一遍——调用过程名称(参数)——你试过吗?你有问题吗?另见dev.mysql.com/doc/refman/8.0/en/create-procedure.html 【参考方案1】:保存您可能使用的逻辑
BEGIN
SELECT column1, column2, column3
FROM customer
WHERE id <= ( SELECT COUNT(*)
FROM customer );
END
【讨论】:
你好@Akina,我用你的建议保存了我的逻辑,我的问题是如何调用这个带有参数的存储过程并显示每行col1 col 2和col3的结果。 @obela06 用参数调用这个存储过程 我没有看到任何参数(或可能是外部参数的东西)。以上是关于存储过程mysql从每一行返回每个结果列的主要内容,如果未能解决你的问题,请参考以下文章
SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?
SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?