Поместите результат «Выполнить оператор» в переменную в MySQL - PullRequest
0 голосов
/ 11 декабря 2018

Как поставить "ВЫПОЛНИТЬ оператор";результат в переменную, чтобы я мог получить результат, используя простую команду SELECT, когда мне это нужно.Результат будет содержать случайное число столбцов на основе пользовательских данных.Итак, я хочу что-то вроде:

SET @RES := EXECUTE stmt;

, и тогда я могу применить-

SELECT @RES;

Если подумать, я хочу получить результат в -

WITH res_set1 AS (
   EXECUTE stmt;
)
SELECT * FROM res_set1;

Заранее спасибо.

1 Ответ

0 голосов
/ 18 марта 2019

Вы должны использовать переменные внутри вашего подготовленного оператора.

Вам придется структурировать подготовленный оператор так, чтобы он давал вам по одной строке за раз, например:

SET @sql='SELECT col1, col2 FROM test WHERE id=3 INTO @v1, @v2';
PREPARE stmt FROM @sql; 
EXECUTE stmt;

После выполнения у вас будут значения col1 и col2 в переменных @v1 и @v2

Для обработки нескольких строк используйте подготовленный оператор в цикле:

SET @sql='SELECT col1, col2 FROM test WHERE id=? INTO @v1, @v2';
PREPARE stmt FROM @sql; 

SET @idx = 1;

REPEAT
   EXECUTE stmt USING @idx;
   SET @idx = @idx + 1;
UNTIL @idx > 6 END REPEAT;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...