Mysql 使用更新功能批量更新记录
由于几个月前的一个事件,数千个作者ID已经从我的论坛数据库中删除,我正在寻找恢复它们。由于数千篇文章没有作者id,因此文章的原始作者与来宾前缀一起变灰 总之,是Posts表包含的列的图像。这是一张照片 我的解决方案:Mysql 使用更新功能批量更新记录,mysql,sql,phpmyadmin,forum,Mysql,Sql,Phpmyadmin,Forum,由于几个月前的一个事件,数千个作者ID已经从我的论坛数据库中删除,我正在寻找恢复它们。由于数千篇文章没有作者id,因此文章的原始作者与来宾前缀一起变灰 总之,是Posts表包含的列的图像。这是一张照片 我的解决方案: UPDATE posts SET author_id = 375, author_name = 'Peter' WHERE author_name = 'petersmileyface' 上面是我尝试过的,但是当我执行代码时,所有的作者ID都被更改为375,因此每个帖子都有一
UPDATE posts
SET author_id = 375, author_name = 'Peter'
WHERE author_name = 'petersmileyface'
上面是我尝试过的,但是当我执行代码时,所有的作者ID都被更改为375,因此每个帖子都有一个作者名“Peter”。w3schools声明,只有省略WHERE子句,所有记录才会更新
为什么我的解决方案不起作用?感谢您的回答。您的请求没有错,您一定是在执行过程中遗漏了什么 对于批量更新,您可以使用另一种请求,使用CASE语句,尝试一下,也许您就不会再有问题了
UPDATE posts
SET
author_id =
CASE author_name
WHEN 'petersmileyface' THEN 375
WHEN 'portugaltrollface' THEN 412
END,
author_name =
CASE author_name
WHEN 'petersmileyface' THEN 'Peter'
WHEN 'portugaltrollface' THEN 'Pedro'
END;
我看不出你的SQL有什么问题,所以我只能猜测你在没有WHERE子句的情况下无意中执行了—它应该按照你的预期控制更新。你收到的确切错误是什么?作者id是否有限制?如果您正在手动更新作者,您可以执行更新。。。SELECT@njk-我实际上没有收到任何错误;一切都很顺利。我只是检查了一下作者id,不,我认为没有,但我可能错了,所以我拍了一张“索引”的截图(添加到问题中)。@petersmileyface你能给我们展示一下从author_name='petersmileyface'@njk的帖子中选择作者id、作者姓名的结果吗?这是输出()它持续了134页。这种方法部分有效。当我使用这段代码时,这种情况会发生();也就是说,每个author\u name和author\u id字段分别变为NULL和0。我可以看到Jamie仍然活着!至少我们救了他。。。每个
NULL
您的屏幕是否对应于作者姓名='petersmileyface'
或者您的问题发生在其他用户身上?如果我使用上述代码,每个用户都会出现NULL值。