如何在MySQL中组合DELETE过滤条件删除双条件匹配的记录
解决MySQL多条件删除问题
你当前的操作逻辑有误:分开执行两个DELETE语句时,第一个会删除所有sale_id在7970到9805之间的记录(完全不考虑total的值),第二个会删除所有total在200到850之间的记录(完全不考虑sale_id的值),这就把只满足单个条件的记录也误删了,不符合你要同时满足两个条件的需求。
正确的做法是用AND将两个条件合并到同一个DELETE语句中,这样只会删除同时符合两个条件的记录:
DELETE FROM `fin_sales` WHERE `sale_id` BETWEEN 7970 AND 9805 AND `total` BETWEEN 200 AND 850;
为了避免误删,建议先执行SELECT语句验证目标记录是否正确:
SELECT * FROM `fin_sales` WHERE `sale_id` BETWEEN 7970 AND 9805 AND `total` BETWEEN 200 AND 850;
内容的提问来源于stack exchange,提问作者MIGAL
相关产品推荐
相关产品推荐

