【问题标题】:stored procedure mysql returning each result column from each row存储过程mysql从每一行返回每个结果列
【发布时间】: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

标签: mysql stored-procedures


【解决方案1】:

保存您可能使用的逻辑

BEGIN
SELECT column1, column2, column3
FROM customer 
WHERE id <= ( SELECT COUNT(*) 
              FROM customer );
END 

【讨论】:

  • 你好@Akina,我用你的建议保存了我的逻辑,我的问题是如何调用这个带有参数的存储过程并显示每行col1 col 2和col3的结果。
  • @obela06 用参数调用这个存储过程 我没有看到任何参数(或可能是外部参数的东西)。
猜你喜欢
  • 2017-03-28
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 2013-06-21
  • 2013-08-14
相关资源
最近更新 更多