删除mysql中的选定行

问题描述 投票:1回答:1

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

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

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

例如:

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

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

mysql sql select sql-delete
1个回答
3
投票

你可以使用这个查询

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

它将删除order_id在items表中只存在一次的行

© www.soinside.com 2019 - 2024. All rights reserved.