首页 > 解决方案 > 如何从 MySQL 中的临时表中填充表的列

问题描述

我有一张三列的桌子;其中两个当前填充了 NULL 值。我已将第一列(包含数据)拆分为存储在临时表中的两列:

CREATE TEMPORARY TABLE IF NOT EXISTS temp_storage AS (
   select LEFT(column1, POSITION('_' IN column1) - 1), 
          RIGHT(column1, POSITION('_' IN REVERSE(column1)) - 1) 
   FROM table1
);

现在我需要获取该数据并用该数据填充两个空列。我尝试使用这个:

INSERT INTO table1(column2, column3)
SELECT * FROM temp_storage;

但是,这只会创建新行并用这些数据填充第 2 列和第 3 列,而在这些行中将第 1 列保留为 NULL。

有没有一种有效的方法来填充临时表中的现有行?

标签: mysql

解决方案


我假设您column1在每种情况下都在同一行中填写空白列?

你为什么不使用UPDATE?那么你不需要临时表。

UPDATE table1
SET column2 = LEFT(column1, POSITION('_' IN column1) - 1),
    column3 = RIGHT(column1, POSITION('_' IN REVERSE(column1)) - 1)

推荐阅读