Как сохранить простой запрос SQL в пользовательскую переменную и выполнить его в MySQL?

Я новичок в MySQL, я пытаюсь сохранить sql оператор в переменную:

SET @sql = 'SELECT * FROM tbl_tableName';
SELECT @sql;

Это выполняется правильно, и дать мне результат:

введите описание изображения здесь

Но как увидеть результат оператора sql, хранящегося в этой переменной? Если я выполню его, он выдаст ошибку.

SET @sql = 'SELECT * FROM tbl_defects';
SELECT @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;

ошибка:

Неустранимая ошибка: необработанная ошибка: вызов функции-члена getClauses () в
ноль в
/opt/lampp/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Query.php:567
Трассировка стека: # 0

Пожалуйста, помогите мне выполнить оператор sql, хранящийся в переменной (Хотите выполнить / проверить результат, сохраненный в этой переменной. Я знаю, что мы можем напрямую запустить и проверить результат в командной строке SQL)?

2

Решение

Чтобы получить результат для этой переменной, вы должны сначала создать stored procedure и выполнить эту процедуру, вы получите ответ.

Создать хранимую процедуру:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `test`()
BEGIN
SET @sql = ('SELECT * FROM tbl_defects');
SELECT @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END$$
DELIMITER ;

Надеюсь, это поможет вам.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]