MySQL:在存储过程中将多个字段选择为多个变量
我可以在MySQL中的同一个SELECT查询中将多个列选择为多个变量吗 例如:MySQL:在存储过程中将多个字段选择为多个变量,sql,mysql,stored-procedures,sql-function,Sql,Mysql,Stored Procedures,Sql Function,我可以在MySQL中的同一个SELECT查询中将多个列选择为多个变量吗 例如: DECLARE iId INT(20); DECLARE dCreate DATETIME; SELECT Id INTO iId, dateCreated INTO dCreate FROM products WHERE pName=iName; 正确的语法是什么?您的语法不太正确:您需要在INTO之前按顺序列出字段,在INTO之后列出相应的目标变量: SELECT Id, dateCreated INTO
DECLARE iId INT(20);
DECLARE dCreate DATETIME;
SELECT Id INTO iId, dateCreated INTO dCreate
FROM products
WHERE pName=iName;
正确的语法是什么?您的语法不太正确:您需要在INTO之前按顺序列出字段,在INTO之后列出相应的目标变量:
SELECT Id, dateCreated
INTO iId, dCreate
FROM products
WHERE pName = iName
除了Martin的答案之外,您还可以在查询末尾添加INTO部分,以使查询更具可读性:
SELECT Id, dateCreated FROM products INTO iId, dCreate
=============建议========== @马丁·克莱顿的回答是正确的,但这只是一个建议 请避免在存储过程中使用不明确的变量 例如:
SELECT Id, dateCreated
INTO id, datecreated
FROM products
WHERE pName = iName
SELECT Id, dateCreated
INTO val_id, val_datecreated
FROM products
WHERE pName = iName
上述示例将导致错误(空值错误)
下面给出的例子是正确的。我希望这是有意义的
例如:
SELECT Id, dateCreated
INTO id, datecreated
FROM products
WHERE pName = iName
SELECT Id, dateCreated
INTO val_id, val_datecreated
FROM products
WHERE pName = iName
您还可以通过引用该表来明确它们,如: [信贷:]
+1.在这种情况下,T-SQL语法更清晰。将它们作为单独的列表会导致与DECLARE CURSOR和FETCH相同的维护问题(不是我,呃,曾经使用过它们)。Pl/Sql也是如此。您还可以通过引用表来明确它们,如:
SELECT p.Id,p.dateCreated INTO Id,datecreated FROM products p,其中pName=iName
@KusalDissanayake该问题是针对MySQL提出的