我正在一个项目,我需要从200多个领域从旧表导入到一个新的,但id字段需要在其前面加上“5”。如何将整个行从一个表复制到另一个在mysql中与第二个表有一个修改后的字段
我使用这个SQL语句:
INSERT INTO brinkoet_dev.property
SELECT liveprop.*
FROM brinkoet_live.property liveprop
WHERE listing_office='Brink';
但是具有能够改变现有的字段内容没有明显的方式。
我正在一个项目,我需要从200多个领域从旧表导入到一个新的,但id字段需要在其前面加上“5”。如何将整个行从一个表复制到另一个在mysql中与第二个表有一个修改后的字段
我使用这个SQL语句:
INSERT INTO brinkoet_dev.property
SELECT liveprop.*
FROM brinkoet_live.property liveprop
WHERE listing_office='Brink';
但是具有能够改变现有的字段内容没有明显的方式。
在您的新表中,将'id'字段重命名为'id_old'。在新表中,在此表末尾添加一个“ID”字段。然后您可以执行以下操作:
INSERT INTO brinkoet_dev.property
SELECT liveprop.*, CONCAT(5, liveprop.id)
FROM brinkoet_live.property liveprop
WHERE listing_office='Brink';
完成后,只需从新表中删除id_old字段即可。
试试这个:
INSERT INTO brinkoet_dev.property
SELECT concat(5, liveprop.ID), field2, field3
FROM brinkoet_live.property liveprop
WHERE listing_office='Brink'
凡field2
和field3
是liveprop
表的字段的其余部分(不包括ID
)。
这是一个fiddle供您玩。
thxs davey ... CONCAT就是我一直在寻找的...... – menriquez