如何将简单的 SQL 查询存储到用户定义的变量中并在 MySQL 中执行?
How to store a simple SQL query into user defined variable and execute it in 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;
错误:
Fatal error: Uncaught Error: Call to a member function getClauses() on
null in
/opt/lampp/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Query.php:567
Stack trace: #0
请任何人帮助我执行存储在变量中的 sql 语句(想要 execute/check 存储在该变量中的结果。我知道我们可以直接 运行 并检查导致 SQL 提示)?
要获得该变量的结果,您必须首先创建一个 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 ;
希望对您有所帮助。
我是 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;
错误:
Fatal error: Uncaught Error: Call to a member function getClauses() on null in /opt/lampp/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Query.php:567 Stack trace: #0
请任何人帮助我执行存储在变量中的 sql 语句(想要 execute/check 存储在该变量中的结果。我知道我们可以直接 运行 并检查导致 SQL 提示)?
要获得该变量的结果,您必须首先创建一个 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 ;
希望对您有所帮助。