300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql使用delete from where in 删除时报错如何解决

mysql使用delete from where in 删除时报错如何解决

时间:2020-03-10 15:56:31

相关推荐

mysql使用delete from where in 删除时报错如何解决

数据库存在重复的垃圾数据想利用delete from where in删除,语句如下:

DELETE FROM tms_daily_plan WHERE tms_daily_plan_id IN ( SELECT t.tms_daily_plan_id FROM tms_daily_plan t WHERE t.FIRST_PORT_CODE = 'PEK' AND _STD BETWEEN '-05-08 00:00:00' AND '-05-08 23:59:59' GROUP BY t.TRUCK_NO );

此时报[Err] 1093 - You can't specify target table 'tms_daily_plan' for update in FROM clause的错误。

查询得知myqsl删除时in后面的子查询不能带where条件,带where条件的必须使用别名。

我们将子查询的表起个别名如下所示:

DELETE FROM tms_daily_plan WHERE tms_daily_plan_id IN ( SELECT tms_daily_plan_id FROM ( SELECT t.tms_daily_plan_id FROM tms_daily_plan t WHERE t.FIRST_PORT_CODE = 'PEK' AND _STD BETWEEN '-05-08 00:00:00' AND '-05-08 23:59:59' GROUP BY t.TRUCK_NO ) ids );

此时成功删除。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。