MySQL: выбор нескольких полей в несколько переменных в хранимой процедуре

Можно ли выбрать несколько столбцов для нескольких переменных в одном и том же запросе выбора в MySQL?

Например:

DECLARE iId INT(20);
DECLARE dCreate DATETIME;

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

Каков правильный синтаксис для этого?

Ответ 2

========== ========== Посоветуйте

@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

Ответ 3

В качестве альтернативы ответ Мартина вы также можете добавить часть INTO в конце запроса, чтобы сделать запрос более понятным:

SELECT Id, dateCreated FROM products INTO iId, dCreate

Ответ 4

все это не работает для меня хранимая процедура нуждается в знаке @с переменными, он показывает неверное имя столбца или не найден

CREATE PROCEDURE ViewStatus(@complainId int ,@status nvarchar(50))
AS
BEGIN



DECLARE @cmplainid int;
DECLARE @statuss nvarchar(50);

SELECT complainId,status FROM complainInfo INTO cmplainid,statuss