как обновить запись с помощью пакета в phpmyadmin - PullRequest
0 голосов
/ 03 ноября 2011

Таблица с именем: products. в нем пятьсот строк записи. В таблице есть поле: products_model products_price. products_model уникален。

исходное значение, которое хранится в таблице products, равно 0.0000. Теперь я хочу обновить его с помощью пакета в phpmyadmin в соответствии с 'products_model`.

Я подготовил данные в excel с двумя столбцами, 'products_model the new value products_price` (по некоторым причинам, некоторые могут быть пустыми). Как мне это сделать? спасибо.

данные из файла 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 голос
/ 03 ноября 2011

Два шага:

  1. Сохранение файла Excel в формате CSV (Excel позволяет это).
  2. Использование LOAD DATA INFILE с ключевым словом REPLACE для обновления таблицы.

Редактировать:

О ключевом слове REPLACE - из ссылки - Если указать 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: Укажите ПОЛЯ, ПРЕКРАЩЕННЫЕ, ЛИНИИ ПРЕКРАЩЕННЫЕ и другие параметры для вашей задачи

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 |
+----------------+----------------+

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...