mysql查询数据的同时对它进行删除操作

2018-06-04 10:06:43

今天遇见一个问题,需要把mysql数据库里面的 商品主表 和它的每一个条目对应不上的数据给全部删除(数据如下图);也就是整理一下数据库里的数据保证数据的可用;

但是出现了问题; 我是先查出来productId 然后判断主表里的哪些productId不在这些productId里面直接删除,之前是这个样子写的

delete from wy_product_v1 where productId not in(select wy_product_v1.productId from wy_product_v1,wy_product_item where wy_product_v1.productId=wy_product_item.productId);

报错

MySQL中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。

但是改成下面写法就可以了:

delete from wy_product_v1 where productId not in(

select w.productId from(

select wy_product_v1.productId from wy_product_v1,wy_product_item where wy_product_v1.productId=wy_product_item.productId

) w

);

  • 2019-10-30 13:25:17

    mybatis foreach标签详解,逗号,and还有or,留一个

    查询数据库中文章的相关文章 文章为一个表 字段tags为相关文章字符串中间用','逗号进行啦分割 查询完一个文章后可以把tags字段构造为一个List<String> 然后利用这个集合作为条件来查询

  • 2019-11-04 02:12:42

    genymotion免费版

    genymotion是一套完整的android虚拟环境工具,相对官方android sdk,它的安装和使用简洁方便不臃肿,但是现在genymotion官方网站不再提供个人的下载,这篇博客记录了如何下载和使用genymotion个人版.