MySql报错: You can't specify target table 'table name' for update in FROM clause

MySql报错: You can't specify target table 'table name' for update in FROM clause,第1张

错误提示:不能先将select出表中的某些值,再update这个表(在同一语句中)。

替换方案

方案一:

多嵌套一层子查询,再进行删除,如下:

完整代码如下:

DELETE FROM blur_article WHERE id NOT IN (

SELECT id FROM (

SELECT min(id) AS id FROM blur_article GROUP BY title

) t

)

方案二:

1.创建一张临时表,将要删除的条件自动存入临时表中:

2.再根据临时表,删除主表数据:

3.最后删除掉临时表:

完整代码如下:

1.create table temp as select min(id) as col1 from blur_article group by title

2.delete from blur_article where id not in (select col1 from tmp)

3.drop table tmp

1、首先在计算机上右键点击【管理】。

2、在计算机管理界面依次找到【系统工具】->【时间查看器】->【windows日志】->【应用程序】。点击【应用程序】。

3、点击【应用程序】在右侧找到,最新的mysql错误信息。双击查看,根据最新的错误信息提示,解决对应的问题。由图上信息可知,我这次是3306端口被占用导致。

4、只要找到真正的原因就好解决,我这次是由于安装的PHPWAMP,即php集成开发环境,导致的端口占用,只需停了PHPWAMP中的mysql即可。

5、然后重新启动mysql即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6109742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存