MySQL插入选择集

时间:2018-09-19 13:33:27

标签: mysql sql sql-insert insert-select

我正在尝试将表复制到其他表的列中,但某些列的日期字段无效(日期类似于“ 00000000”),因此我尝试检查日期是否有效我正在尝试将其设置为NULL。 例子

INSERT INTO table1 (ID, FirstName, LastName, @BD) SELECT * FROM table2
SET Birthday = IF(@BD = '00000000', NULL, CAST(@BD as DATE))

当从CSV文件加载数据时,这种格式适用于LOAD,但给出错误并指出语法错误。另外,table2列的顺序为ID,FirstName,LastName和Birthday。预先感谢!

1 个答案:

答案 0 :(得分:3)

您是否曾尝试在选择期间进行转换

INSERT INTO table1 (ID, FirstName, LastName, Birthday) 
SELECT ID, FirstName, LastName,
  CASE BirthDay 
    WHEN '00000000' THEN NULL
    ELSE CAST(BirthDay as DATE) 
  END 
FROM table2