由于几个月前的事件,我的论坛数据库中已删除了数千个author_id,我希望将其恢复。由于数千个帖子没有author_id,因此该帖子的原作者与Guest_前缀一起显示为灰色。
What the forums currently looks like.
What the forums should look like.
无论如何,here是帖子表所包含的列的图像。这是indexes的图像。
我的解决方案:
UPDATE posts
SET author_id = 375, author_name = 'Peter'
WHERE author_name = 'petersmileyface'
上面是我尝试过的,但是当我执行代码时,所有author_ids都更改为375,因此每个帖子都有一个'Peter'的author_name。 w3schools声明,只有省略WHERE子句,才会更新所有记录。
为什么我的解决方案不起作用?谢谢你的高级答案。
答案 0 :(得分:2)
您的请求没有错,您必须在执行期间遗漏错误。
对于批量更新,您可以使用其他类型的请求,使用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;