同じ値を持つ複数のテーブルの更新
クエリの考慮事項:
目的は更新です2 つのテーブル、Table_One と Table_Two。特定の基準 (ユーザー ID など) に基づいて特定の列 (勝利、連勝、スコア) に同一の値が含まれています。ただし、テーブルにはいくつかの違いがあります。Table_Two には蓋フィールドがなく、名前も異なります。
複数テーブル更新アプローチ:
MySQL は、複数のテーブルを柔軟に実行できます。 -テーブルは単一のクエリを通じて更新されます。このアプローチでは、結合の機能を利用して共通の列に基づいてテーブルを関連付け、参加しているテーブル全体で複数の行を同時に更新できます。
更新されたクエリ:
<code class="sql">UPDATE Table_One a INNER JOIN Table_Two b ON (a.userid = b.userid) SET a.win = a.win+1, a.streak = a.streak+1, a.score = a.score+200, b.win = b.win+1, b.streak = b.streak+1, b.score = b.score+200 WHERE a.userid = 1 AND a.lid = 1 AND b.userid = 1;</code>
この複数テーブルの更新クエリでは:
制限事項と代替案:
複数テーブルの更新は LIMIT をサポートしていないことに注意することが重要です。その結果、クエリは意図したよりも多くの行を更新する可能性があります。したがって、両方の更新を確実にアトミックに実行するには、トランザクションまたはストアド プロシージャの方が適切なソリューションである可能性があります。
以上がMySQL で複数のテーブルを同じ値で更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。