0

数か月前の事件のため、何千ものauthor_idが私のフォーラムデータベースから削除されました。私はそれらを復元しようとしています。何千もの投稿にauthor_idがないため、投稿の元の作成者はGuest_プレフィックスとともにグレー表示されています。

フォーラムは現在どのようになっていますか。

フォーラムはどのように見えるべきか。

とにかく、これが投稿テーブルを構成する列の画像です。そして、これがインデックスの画像です。

私の解決策:

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 に答える