我是存储过程的新手,了解不多。 我正在用一个例子进行测试。你可以帮帮我吗? 这是我的存储过程
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/