sql实现将库存表中某一物品库存为0的数据删掉。
如果该物品存在库存不为0的数据,则正常删;
如果该物品所有库存都为0,则保留一条id最大的其余都删掉
DELETE
FROM
manage
WHERE
name = '苹果'
AND quantity = 0
AND (
-- 如果存在库存不为零的记录,则删除所有
EXISTS ( SELECT 1 FROM manage WHERE name = '苹果' AND quantity > 0 )
-- 如果所有库存都为零,则保留一条番号最大的记录
OR id != ( SELECT MAX ( id ) FROM manage WHERE name = '苹果' AND quantity = 0 )
);
OR:第一个条件满足则不进行第二个条件