вариантов есть несколько....
1) загружаете данные доступными вам способами во временную таблицу, далее UPDATE по этой таблице
если из PHP, то собрать из массива запрос вида
INSERT INTO tmp_goods (name, article, price)
VALUES ('NAME_1', 'ARTICLE_1', PRICE 1),
.......
('NAME_N', 'ARTICLE_N', PRICE_N)
;
после чего выполнить UPDATE:
UPDATE goods g
INNER JOIN tmp_goods t ON t.article = g.article
SET g.price = t.price
WHERE g.price != t.price
;
и очистить tmp_goods если она более не нужна.
2) собрать из массива запрос вида:
UPDATE goods
SET price = CASE article
WHEN ARTICLE_1 THEN PRICE_1
WHEN ARTICLE_2 THEN PRICE_2
....
ELSE price END
так же есть операторы:
REPLACE ,
INSERT ON DUPLICATE KEY UPDATE
и вообще погуглите -
MySQL множественный апдейти... еще вариант:
можно обойтись без временной таблицы (как в варианте 1)...
соберите из массива запрос вида:
UPDATE goods g
INNER JOIN (
SELECT 'ARTICLE-1' AS article, PRICE_1 AS price UNION
SELECT 'ARTICLE-2', PRICE_2 UNION
SELECT 'ARTICLE-3', PRICE_3 UNION
...
SELECT 'ARTICLE-N', PRICE_N
) t ON t.article = g.article
SET g.price = t.price
WHERE g.price != t.price
;
смотрите пример на
sqlfiddle (сосбтвенно update в левом поле описания схемы)