如果某个特定列的值仍然不可用,我想插入一行。如果可用,我想更新该行。否则它会正常插入。此任务的 SQL 查询应该是什么?
例如: id, Product_id, user_id, quantity 是表的属性
考虑到, [1, 450, 56, 2] 在表中。
如果我想插入 [2,450,56,3] 那么它不会创建新行。它将更新上一行。像 [1,450,56,5]。
最佳答案
我会首先对 product_id
和 user_id
的组合创建一个唯一约束(如果表上还没有主键,甚至可以创建一个主键) ):
ALTER TABLE mytable
ADD CONSTRAINT uc_product_user UNIQUE (product_id, user_id);
然后您可以在 insert
语句中使用 on duplicate
子句:
INSERT INTO mytable
VALUES (2, 450, 56, 3)
ON DUPLICATE KEY UPDATE quantity = quantity + VALUES(quantity);
关于mysql - 什么是插入查询取决于同一个表中的先前数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790081/