删除mysql中的选定行

时间:2014-01-29 14:25:32

标签: mysql sql select sql-delete

我想删除一组行,这些行具有与此SQL select相同的属性。

SELECT item_id, count(*) as item_in_order
FROM items
GROUP BY order_id
HAVING item_in_order = 1

用语言表示,我有订单项,我想删除行,这些行来自只有一个物品的订单。

例如:

item_id    order_id
1          1
2          2
3          2
4          3
5          3
6          4

所以我想用item_id 1和6删除行。

1 个答案:

答案 0 :(得分:3)

您可以使用此查询

delete from items
where order_id in 
   (SELECT order_id
    FROM items
    GROUP BY order_id
    HAVING count(*)  = 1
   )

它将删除order_id在项目表

中仅存在一次的行