我在MySQL中的查询有问题。我的表有4列,看起来如下所示:
id_users id_product quantity date
1 2 1 2013
1 2 1 2013
2 2 1 2013
1 3 1 2013
id_users
和id_product
是来自不同表的外键。
我只想删除一行:
1 2 1 2013
它出现了两次,所以我只想删除它。
我尝试了以下查询:
delete from orders where id_users = 1 and id_product = 2
但它将删除这两个(因为它们是重复的)。有什么关于解决这个问题的提示吗?
向删除查询添加限制
delete from orders
where id_users = 1 and id_product = 2
limit 1
所有表都应该有一个主键(由一个或多个列组成),重复行在关系数据库中没有意义。您可以使用limit
来限制删除行的数量,但是:
DELETE FROM orders WHERE id_users = 1 AND id_product = 2 LIMIT 1
但这只是解决了当前的问题,您肯定应该通过定义主键来解决更大的问题。