mysql 将两个SQL语句查询结果并在一起
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 将两个SQL语句查询结果并在一起相关的知识,希望对你有一定的参考价值。
参考技术A 需要将结果合并到一起显示出来,这个时候就需要用到union和union all关键字来实现这样的功能,union和union all的主要区别是union all是把结果集直接合并在一起,而
union 是将union all后的结果进行一次distinct,去除重复的记录后的结果。
如何将简单的 SQL 查询存储到用户定义的变量中并在 MySQL 中执行?
【中文标题】如何将简单的 SQL 查询存储到用户定义的变量中并在 MySQL 中执行?【英文标题】:How to store a simple SQL query into user defined variable and execute it in MySQL? 【发布时间】:2018-07-23 10:08:15 【问题描述】:我是 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() on 空入 /opt/lampp/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Query.php:567 堆栈跟踪:#0
请任何人帮助我执行存储在变量中的sql语句(想要执行/检查存储在该变量中的结果。我知道我们可以直接运行并在SQL提示符下检查结果)?
【问题讨论】:
【参考方案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 ;
希望对您有所帮助。
【讨论】:
有没有什么方法可以不用存储过程来执行?以上是关于mysql 将两个SQL语句查询结果并在一起的主要内容,如果未能解决你的问题,请参考以下文章