**
目标表和原表一致 MYSQL不支持如此操作
数据库不能边查询边删除
**
delete from push_msg_overview where id in (
select id from push_msg_overview where push_date+offset_day >= 20181031
)
在该 sql 语句中由于子查询中包含 push_msg_overview 表,但我们同时要删除 push_msg_overview 表中的记录,所以允许该语句时报如下错误:
1093-You can't specify target table 'push_msg_overview ' for update in FROM clause.
我们的一般思路就是,1、把子查询的结果创建临时表存储。2、把这个临时表作为原表删除的条件。3、删除表数据。
实例:
delete from push_msg_overview where id in (
select e. id from (
select id from push_msg_overview where push_date+offset_day >= 20181031
) e
)
版权声明:本文为qq_26249609原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。