在 UNION 之后 MySql 没有更新

Posted

技术标签:

【中文标题】在 UNION 之后 MySql 没有更新【英文标题】:MySql not updating after UNION 【发布时间】:2018-11-20 04:10:58 【问题描述】:

我是 SQL 新手。我有两个要使用以下语句加入的表:

SELECT * FROM
 (
   SELECT * FROM OPTIONS
   UNION ALL
   SELECT * FROM tmp
 )  AS OPTIONS;

其中OPTIONS 是一个有 300k 行和 55 列的表,tmp 是一个有 300K 行和 55 列的表。当我运行查询时,它会连接两个表,但是当我检查OPTIONS 时,它仍然有 300k 行。如何替换或更新 OPTIONS 使其具有 600k 行和 55 列?

【问题讨论】:

【参考方案1】:

如果我理解得很好,您想将tmp 表上的所有行插入OPTIONS 表中。你可以这样做:

insert into OPTIONS select * from tmp;

【讨论】:

【参考方案2】:

我猜你想将INSERT 中的行从tmp 转换为OPTIONS

INSERT INTO OPTIONS
            SELECT *
                   FROM tmp;

注意:您应该更改 INSERT 以包含目标列,并将它们明确包含在 SELECT 中,替换 *。我不能这样做,因为你没有透露你的表格结构。

【讨论】:

以上是关于在 UNION 之后 MySql 没有更新的主要内容,如果未能解决你的问题,请参考以下文章

MySQL UNION ALL 问题以获得正确的结果

Union all和Union差别

mysql批量插入,批量更新

UNION ALL vs UNION 用于更新/返回+选择?

SQL 查询 UNION 性能

使用 UNION 更新查询