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

MySQL删除最小sale_quantity商品时触发1093错误的解决求助

解决MySQL 1093错误:删除sale_quantity最小的商品

错误原因

MySQL不允许在DELETE/UPDATE语句的WHERE子句中,直接将目标更新表作为子查询的数据源,这会触发Error Code: 1093错误。

解决方案

提供两种可行的修改方案:

方案1:子查询嵌套临时表

把获取最小销量的子查询包装成临时表,避免直接引用目标表:

USE warehousingaquarium;
SET SQL_SAFE_UPDATES = 0; -- 关闭安全更新模式,避免无主键删除报错
DELETE FROM product
WHERE sale_quantity = (
    SELECT min_sale FROM (
        SELECT MIN(sale_quantity) AS min_sale FROM product
    ) AS temp_table
);

方案2:JOIN关联删除

通过JOIN方式关联临时表实现删除:

USE warehousingaquarium;
SET SQL_SAFE_UPDATES = 0;
DELETE p
FROM product p
JOIN (
    SELECT MIN(sale_quantity) AS min_sale FROM product
) AS temp_table ON p.sale_quantity = temp_table.min_sale;

额外说明

  • 如果存在多个商品的sale_quantity都是最小值,上述方案会删除所有符合条件的商品;若只需删除其中一个,可在语句末尾添加LIMIT 1。
  • SET SQL_SAFE_UPDATES = 0需放在DELETE之前执行,否则可能因未使用主键/唯一键作为删除条件触发安全限制报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:15:33