MYSQL通过列的转换将一个表复制到另一个表

时间:2013-12-10 13:29:07

标签: mysql sql etl

我正在将数据从一个数据库表复制到另一个数据库表。这主要是将数据从旧格式复制到新格式。因此,除了简单地复制值value-for-value之外,我还需要在copy语句中进行一些转换。

例如,以下是我必须要复制的内容......

INSERT INTO new_database.table1 (id, product, is_default) 
SELECT id, product, is_default FROM old_database.table1

id和产品工作正常。但是,在此示例中,old_database将“is_default”存储为VARCHAR(1),“Y”或“N”。 new_database将“is_default”存储为BOOLEAN

如何在我已经使用的INSERT SELECT语句中进行格式之间的转换?

1 个答案:

答案 0 :(得分:2)

尝试如下:

INSERT INTO new_database.table1 (id, product, is_default) 
SELECT id, product, IF(is_default='Y',1,0) as isdefault FROM old_database.table1