INSERT ... SELECT到同一个表

时间:2012-10-08 18:25:54

标签: mysql

我有一个包含多个列的表。对于每一行,我想选择三列(PAR_BOOK, PAR_PAGE, PAR_LINE)并将这三列的内容连接到一个新的第四列(APN)。

因此,如果PAR_BOOK = 0108,PAR_PAGE = 291且PAR_LINE = 07,则APN应为010829107

有意义吗?

但是,我不确定我应该使用什么查询来执行此操作。我需要将结果存储在同一个表中,因为它需要最终作为csv导出,以便与将要映射数据的程序一起使用。

2 个答案:

答案 0 :(得分:4)

假设您的第四列已经在表中,您将使用以下更新查询:

UPDATE YourTable
SET APN = CONCAT(PAR_BOOK, PAR_PAGE, PAR_LINE)

如果您的第四列尚未出现在表中,则应在运行ALTER TABLE语句之前使用UPDATE语句先添加它:

ALTER TABLE YourTable
ADD APN VARCHAR(256) NULL

答案 1 :(得分:0)

使用INSERT INTO ... SELECT ...插入同一个表格完全没问题。 MySQL将选定的行保存在临时表中。