MySQL InnoDB を使用しています。
テーブルを更新し、各列が更新される順序を制御したいと思います。可能であれば、すべて 1 つのクエリで。その理由は、ゲームのキュー システムがあるからです。queue_1 が終了したら、queue_2 の値を割り当ててから、queue_2 を消去します。
今、私はこれから予測できない結果を得ています。場合によっては、total_price_2 がゼロに設定され、total_price_1 にロードされます。どちらもゼロになります。(私が欲しいものではありません。)
DBが更新を実行する順序を決定することを読みました。更新を 2 回行う必要がある場合は、問題ありません。私の目標はパフォーマンスです。
UPDATE
queue
SET
queue_1 = queue_2,
total_price_1 = total_price_2,
total_wait_1 = total_wait_2,
queue_2 = '',
total_price_2 = 0,
total_wait_2 = 0
WHERE id IN(1,2,3)