簡體   English   中英

MySQL-如何用一個查詢更新兩個表,其中表2的值為true?

[英]MySQL - How to update two tables with one query where table 2 value is true?

好的,我試圖在不使用PHP的情況下更新兩個表並查詢循環。

表一:用戶

表二:性狀

這兩個表都有匹配的行“ ID”(因此“用戶”中的ID 1也是“特征”中的ID 1)。

表1有兩行需要更新:“ HP”和“ EXP”。 表2有一行:“ STUFF”。

如果STUFF = 0,我只需要一個簡單的查詢即可更新HP和EXP。

所以像這樣:

UPDATE users,traits 
SET 
    traits.hp = 3,
    traits.exp = 10 
WHERE 
    traits.hp < traits.maxhp 
AND users.stuff = 0;

該查詢似乎有效,但是非常慢。 有沒有更好的辦法?

謝謝!

-喬什

根據表的大小,我建議在這些表列(traits.hp,traints.maxhp和users.stuff)上創建幾個索引,以幫助快速查詢。

另外,請確保將traits.hp和traits.maxhp設置為某種數字(例如INT)類型,否則服務器將需要嘗試對其進行即時轉換,這也可能減慢速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM