mysql - 如何在存储过程中调用多个列

标签 mysql stored-procedures

我是存储过程的新手,了解不多。 我正在用一个例子进行测试。你可以帮帮我吗? 这是我的存储过程

DELIMITER $$

DROP PROCEDURE IF EXISTS dictionarytable$$

CREATE PROCEDURE dictionarytable(id VARCHAR(20),name VARCHAR(20),work VARCHAR(20),place VARCHAR(20),mobileno VARCHAR(20),bike VARCHAR(20),car VARCHAR(20),homeno VARCHAR(20),dictionaytype VARCHAR(20),meaning VARCHAR(20),sentence VARCHAR(20),antonym VARCHAR(20),synonym VARCHAR(20))

BEGIN

select id,name,work,place,mobileno,bike,car,homeno,dictionaytype,meaning,sentence,antonym,synonym from dictionary INTO dictionarytable; END $$

分隔符; 我想在存储过程 dictionarytable 中调用 dictionary(table) 中的 id、name、13 列 Begin 中的查询是错误的,您能否指定一个查询来显示所有 13 列

最佳答案

您不能将字段值传递到过程中,您可以将它们传递到用户变量、声明的变量或 OUT 参数中。请注意,使用 INTO 子句时只能传递一条记录。例如:

SET @var1 = NULL;
SELECT column1 INTO @var1 FROM table;

如果你想复制多于一条记录,那么你可以使用INSERT INTO...SELECT将数据集复制到第二个表的语句。例如:

INSERT INTO table2 SELECT column1 FROM table;

此外,如果您想使用变量或参数作为标识符(在您的情况下为字段名称),那么您应该使用 prepared statements .

关于mysql - 如何在存储过程中调用多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9188033/

相关文章:

sql-server - 存储过程中的异常流调用另一个存储过程

mysql - 将 .csv 导入 MySQL 时如何跳过中间行

php - 无法在 mySQl 数据库中存储文本文件

mysql - 跨公司计算机共享数据库

mysql - 大查询 : Consolidate subselect into one row by date

java - 调用存储过程

sql-server-2008 - JPA 2.0 是否支持 SQL Server 表变量?

c# - Sql Injection - 以下内容是否容易受到攻击?

mysql - 类型错误 : Cannot read property 'query' of undefined?

mysql - 如何选择与MySQL匹配的第一行