1. 程式人生 > >MySQL執行update時的[ERROR 1093]處理方法

MySQL執行update時的[ERROR 1093]處理方法

今天在處理刪除購物車表中商品ID不存在商品表的資料時MySQL報錯 1093

原SQL:

update ims_member_cart
set deleted=1 
where id in (
        select id from ims_member_cart 
            WHERE goodsid not in(SELECT id from ims_goods )
)

找了下原因是因為在update ims_member_cart表的時候,條件的子查詢也包含這個表的時候,MySQL不支援

解決方法:

再巢狀一次,給查詢出來的值加個別名

update ims_member_cart 
set deleted=1 
where id in (
    select id from (
        select id from ims_member_cart 
        WHERE goodsid not in(SELECT id from ims_goods )
    ) aa
)