提问者:小点点

如何删除mysql表中列值相同的某一行?


我在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_usersid_product是来自不同表的外键。

我只想删除一行:

1     2     1    2013

它出现了两次,所以我只想删除它。

我尝试了以下查询:

delete from orders where id_users = 1 and id_product = 2

但它将删除这两个(因为它们是重复的)。有什么关于解决这个问题的提示吗?


共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

但这只是解决了当前的问题,您肯定应该通过定义主键来解决更大的问题。