我正在使用MySQL InnoDB。MySQL - 在單個查詢中更新列的順序
我想更新一個表並控制每列更新的順序。所有在一個查詢如果可能的話。原因是我有一個遊戲隊列系統。當你完成queue_1時,我希望爲它分配queue_2的值,然後擦除queue_2。
現在我收到了不可預測的結果。有時total_price_2設置爲零,則加載到total_price_1。兩者都變爲零。 (不是我想要的。)
我讀到DB決定運行更新的順序。如果我必須做兩個更新,那很好。我的目標是表現。
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)
您確定'total_price_2'在更新之前不是'0'嗎? – MichaelRushton 2012-04-04 08:12:34
@MichaelRushton好想法。在您的評論後,我正在嘗試自己的查詢,而不是在代碼中的自然上下文中查詢。 7次嘗試,每次都在努力。使用我給它的訂單。我會繼續嗅探並回傳。 – Dor1000 2012-04-04 08:25:15
我在更新之前和之後選擇並回顯隊列數據。我發現我的更新正在按計劃進行,但其他情況在後來改變了這些值。氙氣在這方面有一個很好的答案。 – Dor1000 2012-04-04 08:44:55