Sto cercando di aggiornare una tabella MySQL in base alle informazioni di un'altra.
Il mio original
tavolo si presenta come:
id | value
------------
1 | hello
2 | fortune
3 | my
4 | old
5 | friend
E il tobeupdated
tavolo ha questo aspetto:
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | | old
4 | | friend
5 | | fortune
Voglio aggiornare id
in tobeupdated
la id
da original
in base a value
(stringhe memorizzate nel VARCHAR(32)
campo).
Si spera che la tabella aggiornata avrà il seguente aspetto:
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | 4 | old
4 | 5 | friend
5 | 2 | fortune
Ho una query che funziona, ma è molto lenta:
UPDATE tobeupdated, original
SET tobeupdated.id = original.id
WHERE tobeupdated.value = original.value
Questo massimizza la mia CPU e alla fine porta a un timeout con solo una frazione degli aggiornamenti eseguiti (ci sono diverse migliaia di valori da abbinare). So che la corrispondenza per value
sarà lenta, ma questo è l'unico dato che ho per abbinarli insieme.
C'è un modo migliore per aggiornare valori come questo? Potrei creare una terza tabella per i risultati uniti, se fosse più veloce?
Ho provato MySQL - Come posso aggiornare una tabella con i valori di un'altra tabella? , ma non è stato d'aiuto. Qualche idea?
Grazie in anticipo per aiutare un principiante di MySQL!