118

我可以在 MySQL 的同一个选择查询中将多个列选择到多个变量中吗?

例如:

DECLARE iId INT(20);
DECLARE dCreate DATETIME;

SELECT Id INTO iId, dateCreated INTO dCreate 
FROM products
WHERE pName=iName;

什么是正确的语法?

4

3 回答 3

242

您的语法不太正确:您需要在 INTO 之前按顺序列出字段,并在之后列出相应的目标变量:

SELECT Id, dateCreated
INTO iId, dCreate
FROM products
WHERE pName = iName
于 2010-03-15T22:52:40.930 回答
14

==========建议==========

@martin Clayton 答案是正确的,但这只是一个建议。

请避免在存储过程中使用不明确的变量。

例子 :

SELECT Id, dateCreated
INTO id, datecreated
FROM products
WHERE pName = iName

上面的例子会导致错误(空值错误)

下面给出的示例是正确的。我希望这是有道理的。

例子 :

SELECT Id, dateCreated
INTO val_id, val_datecreated
FROM products
WHERE pName = iName

您还可以通过引用表格使它们明确,例如:

[信用:maganap ]

SELECT p.Id, p.dateCreated INTO id, datecreated FROM products p 
WHERE pName = iName
于 2015-02-27T07:32:27.233 回答
3

除了 Martin 的回答之外,您还可以在查询末尾添加 INTO 部分,以使查询更具可读性:

SELECT Id, dateCreated FROM products INTO iId, dCreate
于 2015-01-22T15:56:08.133 回答