如何从MySQL的临时表中填充表的列

时间:2019-06-28 15:55:17

标签: 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。

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

1 个答案:

答案 0 :(得分:0)

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

您为什么不使用UPDATE?这样就不需要临时表。

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