2011-08-25 18 views
1

我有以下兩個SQL語句進行關於MySQL的計算負載數據

LOAD DATA LOCAL INFILE '~/data/geo_blocks.csv' INTO TABLE geo_blocks FIELDS ENCLOSED BY '\"'TERMINATED BY ',' LINES TERMINATED BY '\n' (ip_start, ip_end, location_id); 

&

update geo_blocks set index_geo = (ip_end - mod(ip_end, 65536)); 

有沒有辦法結合LOAD DATA語句在同一時間進行計算?

回答

4

你應該嘗試在LOAD DATA INFILE命令SET子句 -

LOAD DATA LOCAL INFILE '~/data/geo_blocks.csv' 
INTO TABLE geo_blocks 
FIELDS ENCLOSED BY '\"'TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(@ip_start, @ip_end, location_id) 
SET index_geo = @ip_end - MOD(@ip_end, 65536); 
+0

似乎還有一個額外的),在設定的結束。 –

+0

更正後的語句將爲 'LOAD DATA LOCAL INFILE'〜/ data/geo_blocks.csv'INTO TABLE geo_blocks FIELDS ENCLOSED BY'\''TERMINATED BY','LINES TERMINATED BY'\ n'(@ip_start,@ip_end ,location_id)SET index_geo = @ip_end - MOD(@ip_end,65536);' –

+0

我已經刪除了額外的')',謝謝。 – Devart