0

由于几个月前的事件,我的论坛数据库中删除了数千个 author_id,我正在寻找恢复它们。因为成千上万的帖子没有 author_id,所以帖子的原作者连同 Guest_ 前缀一起显示为灰色。

论坛目前的样子。

论坛应该是什么样子。

无论如何,这是Posts表包含的列的图像。这是索引的图像。

我的解决方案:

UPDATE posts
SET author_id = 375, author_name = 'Peter'
WHERE author_name = 'petersmileyface'

以上是我尝试过的,但是当我执行代码时,所有 author_ids 都更改为 375,因此每个帖子都有一个 author_name 为“Peter”。w3schools 声明只有当我省略 WHERE 子句时,才会更新所有记录。

为什么我的解决方案不起作用?提前感谢您的回答。

4

1 回答 1

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;
于 2012-06-27T22:14:05.220 回答