Как я могу получить и назначить возвращаемое значение из хранимой процедуры MySQL
У меня есть следующая хранимая процедура:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `getUserIdByLogin`(userId VARCHAR(255))
BEGIN
SELECT id FROM `userdata` WHERE login = userId;
END
Я хочу объявить новую переменную @tmp
например, и сделать что-нибудь для этого:
SET @tmpValue = CALL getUserIdByLogin("someLogin");
Но это не работает.
Если просто позвонить:
CALL getUserIdByLogin("someLogin");
Тогда я бы увидел результаты, но мне нужно объявить результаты в переменной (типа массива).
Как мне это сделать?
Спасибо!
1 ответ
Решение
CREATE DEFINER=`root`@`localhost` PROCEDURE `getUserIdByLogin`(
userId VARCHAR(255),
OUT idout int
)
BEGIN
SELECT id INTO idout FROM `userdata` WHERE login = userId;
END
затем
SET @id = 0;
CALL getUserIdByLogin("someLogin", @id);
SELECT @id;