我有一个用于电子商务网站的 mysql 数据库,其定价表如下所示:
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]
(n = 新插入的 ID,或者 PK 更新,如果它已经存在)
我知道下面的代码不起作用,但基本上,我需要做的是:
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]。
几天来,我一直在寻找答案,并将头撞在桌子上。有任何想法吗?任何帮助将不胜感激。