2011-11-03 100 views
0

表名爲:products。它有五百行記錄。該表有字段:products_modelproducts_priceproducts_model是唯一的。如何用phpmyadmin中的批處理更新記錄

存儲在products表中的原始值全部爲0.0000。現在我想根據'products_model`在phpmyadmin中批量更新它。

我準備了兩列「products_model the new value products_price」(根據某種原因,有些可能爲空)的excel中的數據。我該怎麼做?謝謝。

數據形成csv文件:

products_model products_price 
LB2100 
LB2117 12.49 
LB2381 35.99 
LB2307 12.99 
LB2380 35.99 
LB2468 10.99 
LB2139 
LB2223 
LB2027 15.99 
LB2126 12.99 
LB2308 9.99 
LB2124 13.99 
LB2077 
LB2361 
LB2021 14.99 
LB2129 
LB2010 11.21 
LB2186 
LB2039 15.66 
LB2153 
LB2564 30.99 
LB2104 
LB1182 15.99 
LB2034 15.9 
LB2455 15.55 
LB2189 
LB2559 22.9 
LB2382 35.99 
LB2168 10.99 

回答

1

兩個步驟:

  1. 商店excel文件作爲CSV(Excel允許它)。
  2. 使用帶REPLACE關鍵字的LOAD DATA INFILE語句更新您的表格。

編輯:

關於更換關鍵字 - 從參考 - 如果你指定REPLACE,輸入行會替換現有行。換句話說,對於主鍵或唯一索引具有與現有行相同的值的行。

用法是相同的 -

LOAD DATA INFILE 'file_name' REPLACE INTO TABLE tbl_name FIELDS TERMINATED BY... 

代碼

創建和填充表:

CREATE TABLE products(
    products_model VARCHAR(6) NOT NULL, 
    products_price DECIMAL(5, 2) DEFAULT NULL, 
    PRIMARY KEY (products_model) 
); 

INSERT INTO products VALUES 
    ('LB2307', 100.00), 
    ('LB2380', 200.00), 
    ('LB2468', 300.00); 

讓我們從CSV導入數據: 指定FIELDS終止,LINES終止,其他PARAMATERS您的任務

LOAD DATA INFILE 'file_name.csv' REPLACE INTO TABLE products 
FIELDS TERMINATED BY ' ' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES 
(products_model, @var1) 
SET products_price = IF(@var1 = '', 0, @var1); -- Replace empty string with 0 

檢查結果:

SELECT * FROM products; 
+----------------+----------------+ 
| products_model | products_price | 
+----------------+----------------+ 
| LB1182   |   15.99 | 
| LB2010   |   11.21 | 
| LB2021   |   14.99 | 
| LB2027   |   15.99 | 
| LB2034   |   15.90 | 
| LB2039   |   15.66 | 
| LB2077   |   0.00 | 
| LB2100   |   0.00 | 
| LB2104   |   0.00 | 
| LB2117   |   12.49 | 
| LB2124   |   13.99 | 
| LB2126   |   12.99 | 
| LB2129   |   0.00 | 
| LB2139   |   0.00 | 
| LB2153   |   0.00 | 
| LB2168   |   10.99 | 
| LB2186   |   0.00 | 
| LB2189   |   0.00 | 
| LB2223   |   0.00 | 
| LB2307   |   12.99 | 
| LB2308   |   9.99 | 
| LB2361   |   0.00 | 
| LB2380   |   35.99 | 
| LB2381   |   35.99 | 
| LB2382   |   35.99 | 
| LB2455   |   15.55 | 
| LB2468   |   10.99 | 
| LB2559   |   22.90 | 
| LB2564   |   30.99 | 
+----------------+----------------+ 

祝你好運!

+0

對不起,我不知道如何使用LOAD DATA INFILE語句和REPLACE關鍵字t – dreamchaser

+0

這很簡單。我編輯了答案。 – Devart

+0

我很抱歉,我仍然不知道如何加載csv文件。我可以把你的命令在phpmyadmin。例如:csv命名爲product.csv。我該怎麼做?謝謝你 – dreamchaser