You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带子查询的DELETE语句执行逻辑疑问:等值最大值的行未被删除

问题原因解答

你贴出的DELETE语句存在语法疏漏,子查询缺少左括号,实际可正常执行的正确写法应为:

DELETE FROM neworders WHERE ordertotal < (SELECT MAX(ordertotal) FROM orders);

出现该现象的核心原因如下:

  • DELETE语句的执行逻辑是仅删除满足WHERE子句条件的行,不满足条件的行默认会被保留
  • 你设置的筛选条件为ordertotal < orders表的ordertotal最大值,经查询orders表的ordertotal最大值为1910.64,因此只有ordertotal严格小于1910.64的行才会触发删除
  • neworders中ordertotal等于1910.64的行不满足小于最大值的筛选条件,因此不会被删除,最终留存下来

如果需要调整删除逻辑,可根据需求修改WHERE条件:

  • 要删除所有小于等于最大值的行,将条件改为ordertotal <= (SELECT MAX(ordertotal) FROM orders)
  • 要删除大于等于最大值的行,将条件改为ordertotal >= (SELECT MAX(ordertotal) FROM orders)

内容的提问来源于stack exchange,提问作者Aida Arisa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:45:08