2

我是 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;

错误:

致命错误:未捕获的错误:在 /opt/lampp/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Query.php:567 中的 null 上调用成员函数 getClauses() 堆栈跟踪:#0

请任何人帮助我执行存储在变量中的 sql 语句(想要执行/检查存储在该变量中的结果。我知道我们可以直接运行并在 SQL 提示符下检查结果)?

4

1 回答 1

1

要获得该变量的结果,您必须首先创建一个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 ;

希望这对您有所帮助。

于 2018-02-13T05:43:58.000 回答