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