我目前正在使用 MySQL 在 PHP 中制作公共参考指南。有时垃圾邮件发送者会更改内容,我想恢复到以前版本的页面。
所有版本的页面都被存储,所以我的问题只是查询。
UPDATE pages new, pages old SET new.status='2',old.status='1' WHERE new.ip='<spambotip>' AND new.status='0' AND old.title=new.title AND old.status='1' AND old.last_modified IN (SELECT max(last_modified) FROM pages tr WHERE tr.title = new.title AND tr.status='0')
但是我收到以下错误:
您不能在 FROM 子句中为更新指定目标表“新”
我的查询旨在查找垃圾邮件机器人创建的所有状态 = 1(活动)的页面,将该页面的状态设置为 2(垃圾),然后找到具有最高 last_modified、相同标题且状态为 0(非活动)的页面并将那个人的状态设置为1。
我认为我需要使用内部循环,但我无法想象如何完成它。我用谷歌搜索了一下,但没有找到任何我可以使用的东西。
任何帮助表示赞赏。