我可以在MySQL中的同一个选择查询中将多个列选择为多个变量吗?
例如:
DECLARE iId INT(20);
DECLARE dCreate DATETIME;
SELECT Id INTO iId, dateCreated INTO dCreate
FROM products
WHERE pName=iName;
这个的正确语法是什么?
答案 0 :(得分:192)
您的syntax不太正确:您需要在INTO之前按顺序列出字段,并在以下列出相应的目标变量:
SELECT Id, dateCreated
INTO iId, dCreate
FROM products
WHERE pName = iName
答案 1 :(得分:9)
==========劝==========
@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
答案 2 :(得分:2)
除了Martin的答案之外,您还可以在查询末尾添加INTO部分以使查询更具可读性:
SELECT Id, dateCreated FROM products INTO iId, dCreate