2017-05-10 24 views
3

我正在將CSV文件導入到Heidi SQL中。我使用此代碼創建表:如何查找和替換CSV導入使用mysql

create table all_data 
    (
     Keyword varchar(1000), 
     Position int, 
     Previous_Position int, 
     Search_Volume int, 
     KW_Difficulty float, 
     URL varchar(1000), 
     Post_title varchar(1000), 
     Post_URL varchar(1000), 
     Genre varchar(1000), 
     Location varchar(1000), 
     Avg_Daily_Visitors float, 
     pageviews int 
     ) 
; 

但在Avg_Daily_visitors列有「\ N」那裏是沒有價值的。我一直在用這段代碼導入數據:

load data local infile 'C:/filepath.../All_Data.csv' 
replace into table all_data 
fields terminated by ',' 
    enclosed by '"' 
    escaped by '"' 
lines terminated by "\r\n" 
ignore 1 rows 
set 
    Avg_Daily_Visitors = replace(Avg_Daily_Visitors,"\N",0), 
    pageviews = replace(pageviews,"\N", 0) 
; 

但它並不是用0替換值,這是我想要實現的。如何使Heidi SQL在導入時將「\ N」替換爲「0」?

謝謝。

回答

0

首先將您讀取的值分配給一個變量,然後處理該變量。爲此,您可以指定目標表的列,但指定一個變量而不是要替換的列。

load data local infile 'C:/filepath.../All_Data.csv' 
replace into table all_data 
fields terminated by ',' 
    enclosed by '"' 
    escaped by '"' 
lines terminated by "\r\n" 
ignore 1 rows 
(column_1, column_2, @variable1, @variable2, column_5) 
set 
    Avg_Daily_Visitors = replace(@variable1,"\N",0), 
    pageviews = replace(@variable2,"\N", 0) 
;