ホームページ >データベース >mysql チュートリアル >MySQL UPDATE クエリが「0 Rows Affected」を返すのはなぜですか?

MySQL UPDATE クエリが「0 Rows Affected」を返すのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-03 05:31:30625ブラウズ

Why is my MySQL UPDATE query returning

MySQL UPDATE クエリが「影響を受ける行は 0 行」を返す

MySQL UPDATE ステートメントは、既存のテーブル内のデータを変更するために使用されます。発生する一般的な問題の 1 つは、クエリの実行が成功したにもかかわらず、「影響を受ける行が 0 行あります」というメッセージを受信することです。

この特定のケースでは、UPDATE クエリは、特定の PhoneNumber について、phonecalls テーブルの Called 列を「Yes」に更新することを目的としています。 。ただし、クエリは「影響を受けた行が 0 行あります」を返します。

問題の理解

「影響を受けた行が 0 行あり」というメッセージは、次の結果として行が変更されなかったことを示します。実行されたクエリ。これはいくつかの理由で発生する可能性があります。

  • 構文が正しくありません: クエリ構文が正しいことを確認してください。
  • 存在しない電話番号:指定された PhoneNumber が実際にデータベースに存在することを確認してください。
  • Already Updated: 指定された PhoneNumber の Called 列がすでに「Yes」に設定されている場合、UPDATE クエリは変更を行いません。 .

トラブルシューティング

この問題を解決するには、次の手順を検討してください:

  1. 電話番号を確認してください: クエリで使用されている PhoneNumber がテーブル内の正しい行と一致することを確認します。
  2. 現在の Called 値を確認する: SELECT クエリを使用して、Called 列の現在の値を確認します。指定された電話番号。すでに「Yes」に設定されている場合、UPDATE クエリは何も変更しません。
  3. WHERE 条件を使用します: WHERE 句に特定の PhoneNumber を指定して、必要な電話番号のみを確実に指定します。行が更新されます。例:
UPDATE phonecalls SET Called = "Yes" WHERE PhoneNumber = "999 29-4655" AND Called <> "Yes";

条件 Called <> を追加することで、 「はい」。クエリは、Called 列の現在の値が「はい」でない場合にのみ実行されます。

以上がMySQL UPDATE クエリが「0 Rows Affected」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。