2012-12-01 53 views
0

我有一個巨大的文本文件,我需要上傳到一個MySQL表加載數據與重複年只有幾天或幾個月

數據集跨多個年跨越,但實際數據只有月和日信息。但是,數據集是從最近一年開始訂購的。同一天也可能有多個數據點。

我該如何告訴mysql將其上傳到表格並添加正確的年份?

這裏是我處理其中最後幾個數字是一個月的數據類型的例子:一天

Some interesting string here    11:04 
Some other interesting text    10:04 
........................     10:04 

........................ 
Some old interesting text from last year 12:02 
some boring news from last year   02:01 
some news from 2 years ago    12:02 
+0

其最後4位MM:DD – pyCthon

+1

你可以在Excel中打開它並添加年?或刪除舊數據?或兩者。聽起來很簡單。 – Andrew

+0

那麼在你的文本文件中字段是如何分隔的呢?它是固定空間嗎? – eggyal

回答

1

假設你的文件在2010年開始,以及隨後稍後一個日期指次年:

SET @last_mnth := 0, @year := 2010; 

LOAD DATA INFILE '/path/to/file.txt' INTO TABLE myTable 
FIELDS SEPARATED BY '\t\t' (description, @d) SET 
    date = CONCAT(
    LEFT(CONCAT(
     @mnth := SUBSTRING_INDEX(@d, ':', 1), 
     @date := SUBSTRING_INDEX(@d, ':', -1), 
     @year := @year + (
       @mnth < @last_mnth 
       OR (@mnth = @last_mnth AND @date < @date) 
       ), 
     @last_mnth := @mnth 
    ), 0), 
    CONCAT_WS('-', @year, @mnth, @date) 
) 
; 

在這裏,我們分配你的「戳」到用戶變量@d,然後設置date列等於從一個空字符串(的串聯,以形成分配從LEFT(..., 0)字符串值給其他臨時用戶變量)和我們構造的日期文字。

相關問題