[英]Inserting new record or updating record by updating a value
我有一个购物车表。 用户可以将产品添加到购物车。 我正在使用 php 添加或插入记录。
购物车表包括:
CartID, CartProductID, CartQty, CartPrice, CartUserID
现在用户不能再次在购物车表上添加相同的产品,而是如果产品存在,它应该更新 CartQty 的值。 对于这样的更新,sql 可以是什么?
如果产品已经存在于购物车中或不存在,我可以创建多个按钮并使用隐藏和显示 javascript。
数据示例:
CartID, CartProductID, CartQty, CartPrice,CartUserID
1, 10, 1, 100, 4
2, 11, 2, 150, 4
现在,如果具有 4 的 UserID 想要再次将 ProductID 10 添加到购物车中,则 CartQty 值应根据 qty 输入字段相加。
如果 qty 输入字段为 3,则第一条记录应更新为:
1, 10, 4, 100, 4
有效模式的示例可能如下所示:
cart
cart_id *
user_id
expiry_date
cart_detail
cart_id *
product_id *
quantity
product
product_id *
date *
price
* = (component of) PRIMARY KEY
试试看,在 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
在 MySQL 中,您可以使用ON DUPLICATE KEY UPDATE
子句INSERT
,前提是您创建了正确的UNIQUE
子句,据我说,它应该是CartID, CartProductID, CartUserID
。
有关ON DUPLICATE KEY
的更多信息,请参阅https://mariadb.com/kb/en/library/insert-on-duplicate-key-update/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.