Ответ 1
Ваш синтаксис не совсем прав: вам нужно перечислить поля до INTO и соответствующие целевые переменные после:
SELECT Id, dateCreated
INTO iId, dCreate
FROM products
WHERE pName = iName
Можно ли выбрать несколько столбцов для нескольких переменных в одном и том же запросе выбора в MySQL?
Например:
DECLARE iId INT(20);
DECLARE dCreate DATETIME;
SELECT Id INTO iId, dateCreated INTO dCreate
FROM products
WHERE pName=iName;
Каков правильный синтаксис для этого?
Ваш синтаксис не совсем прав: вам нужно перечислить поля до INTO и соответствующие целевые переменные после:
SELECT Id, dateCreated
INTO iId, dCreate
FROM products
WHERE pName = iName
========== ========== Посоветуйте
@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
В качестве альтернативы ответ Мартина вы также можете добавить часть INTO в конце запроса, чтобы сделать запрос более понятным:
SELECT Id, dateCreated FROM products INTO iId, dCreate
все это не работает для меня хранимая процедура нуждается в знаке @с переменными, он показывает неверное имя столбца или не найден
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