将csv文件的导入代码输入到我的8列数据库中:
Load Data LOCAL InFile 'file.csv' into table myTable
Fields Terminated by ','
OPTIONALLY Enclosed by '"'
Lines Terminated by '\n'
IGNORE 1 Lines
(col1, col2, @var3, @var4, col5, col6, col7, col8)
Set
col3 = if(@var3 = '', NULL, @var3),
col4 = if(@var4 = '', NULL, @var4)
;
将空条目更改为NULL值可以正常工作,但.... 有没有办法缩短Set部分,所以我不必为每一列指定条件? 我实际上需要上面8列中的7列,这个特别的表格相当小。
答案 0 :(得分:2)
有没有办法缩短设置部分
是的,MySQL提供了简写功能NULLIF()
:
col3 = NULLIF(@var3, '') -- etc
所以我不必为每一列指定一个条件?
可悲的是,尽管在应用程序代码中动态生成所需的SQL应该是相当简单的。