我有一个购物车表。用户可以将产品添加到购物车。我正在使用php添加或插入记录。
购物车表包括:
CartID, CartProductID, CartQty, CartPrice, CartUserID
现在,用户应该不能再次在购物车表上添加相同的产品,但是如果产品存在,它应该更新CartQty的值。这样的更新可以使用什么sql?
如果产品已经存在于购物车中,我可以创建多个按钮并使用“隐藏并显示javascript”。
数据示例:
CartID, CartProductID, CartQty, CartPrice,CartUserID
1, 10, 1, 100, 4
2, 11, 2, 150, 4
现在,如果用户ID为4的用户想要再次将ProductID 10添加到购物车中,则应该基于数量输入字段添加CartQty值。
如果数量输入字段为3,则第1条记录应更新为:
1, 10, 4, 100, 4
答案 0 :(得分:1)
有效架构的示例可能如下所示:
cart
cart_id *
user_id
expiry_date
cart_detail
cart_id *
product_id *
quantity
product
product_id *
date *
price
* = (component of) PRIMARY KEY
答案 1 :(得分:0)
尝试使用SQL,假设@CartProductID = 10且@CartQty = 1
IF NOT EXISTS(SELECT 1 FROM Table1 WHERE CartProductID=@CartProductID)
BEGIN
INSERT INTO Table1 (CartID, CartProductID, CartQty, CartPrice,CartUserID)
VALUES (1, 10, 1, 100, 4)
END
ELSE
BEGIN
UPDATE Table1 SET CartQty=CartQty+@CartQty WHERE CartProductID=@CartProductID
END
答案 2 :(得分:0)
在MySQL中,只要创建了正确的INSERT
子句,就可以用ON DUPLICATE KEY UPDATE
子句UNIQUE
,根据我的说法,该子句应该是CartID, CartProductID, CartUserID
。
有关ON DUPLICATE KEY
的更多信息,请参见https://mariadb.com/kb/en/library/insert-on-duplicate-key-update/