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

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

например:

DECLARE iId INT(20);
DECLARE dCreate DATETIME;

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

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

3 ответов


код синтаксис не совсем правильно: вам нужно перечислить поля в порядке перед 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

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

SELECT Id, dateCreated FROM products INTO iId, dCreate