2016-01-17 10 views
0

了工作導入代碼到我的8列數據庫這裏:Mysql加載數據:SET IF適用於所有列還是給定子列?爲CSV文件

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值正常,但.... 有什麼辦法來縮短設置部分所以我不必爲每一列指定條件? 我實際上需要這8列中的7列,這個特定的表是相當小的。

回答

1
  1. 有什麼辦法縮短設置部分

    是,MySQL提供了速記功能NULLIF()

    col3 = NULLIF(@var3, '') -- etc 
    
  2. ,所以我不必爲每一列指定一個條件?

    不幸的是,雖然在應用程序代碼中動態生成所需的SQL應該相當簡單。

+0

噢噢〜 感謝您的簡寫! – House3272

相關問題