У меня есть базы данных MySQL для коммерции сайта веб-с ценовой таблицы, которая выглядит следующим образом:INSERT INTO .... Несколько строк ... На Дублированный Key
priceid (int, PK, AI)
productid (int)
membershipid (int)
price (decimal(12,2))
quantity (int)
Это позволяет пункты иметь различные уровни ценообразования либо на основе membershipid
, либо quantity
(но здесь значение всегда будет 1).
мне нужно обновить это с исходной таблицы, как:
productid (int,PK)
price1 (int)
price2 (int)
price3 (int)
Я не знаю, как вставить данные:
COLS:[productid, price, membershipid, quantity][priceid]
ROWS:[productid, price1, 1, 1][n]
ROWS:[productid, price2, 2, 1][n]
ROWS:[productid, price3, 5, 1][n]
( п = ID на новой вставке, или PK Update, если он уже существует)
Я знаю, что следующий код не будет работать, но по существу, мне нужно сделать следующее:
INSERT INTO mysql.pricing
(prouductid, membershipid, quantity, price)
SELECT productid, 1, 1, price1 from mysql.source 'row n
SELECT productid, 2, 1, price2 from mysql.source 'row n+1
SELECT productid, 5, 1, price3 from mysql.source 'row n+2
ON DUPLICATE KEY UPDATE productid = VALUES(productid),membershipid = VALUES(membership), quantity = VALUES(quantity), price = VALUES(price);
Мне нужны три разных строки, каждый с одинаковым [productid], но отличается [priceid, membershipid, price].
Я искал ответы и несколько дней стучал головой о стол. Любые идеи? Любая помощь будет очень оценен.
Мне очень жаль, но это трудно для меня, чтобы расшифровать то, что вы имеете в виду в первом способе. После удаления AI я буду запускать это 3 раза, каждый с другим идентификатором membershipID? : REPLACE INTO mysql.pricing (priceid, prouductid, memberid, количество, цена) SELECT priceid, productid, 1, 1, priceA от mysql.source – luxdvie