[英]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.