Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用更新功能批量更新记录_Mysql_Sql_Phpmyadmin_Forum - Fatal编程技术网

Mysql 使用更新功能批量更新记录

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,因此每个帖子都有一

由于几个月前的一个事件,数千个作者ID已经从我的论坛数据库中删除,我正在寻找恢复它们。由于数千篇文章没有作者id,因此文章的原始作者与来宾前缀一起变灰

总之,是Posts表包含的列的图像。这是一张照片

我的解决方案:

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值。