Как я могу получить и назначить возвращаемое значение из хранимой процедуры 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;
Другие вопросы по тегам