Hej!
Har en tabell ("info") som innehåller en herrans massa poster. En del av dessa poster (dock långtifrån alla) innehåller data som jag vill ersätta med annan data. Detta löser jag för nuvarande på följande sätt:
UPDATE info SET infokolumn = REPLACE(infokolumn, 'prefix_INFO', 'prefix2_NYINFO') WHERE infokolumn LIKE '%prefix_INFO%';
UPDATE info SET infokolumn = REPLACE(infokolumn, 'prefix_INFO2', 'prefix2_NYINFO2') WHERE infokolumn LIKE '%prefix_INFO2%';
UPDATE info SET infokolumn = REPLACE(infokolumn, 'prefix_INFO3', 'prefix2_NYINFO3') WHERE infokolumn LIKE '%prefix_INFO3%';
osv..
Detta fullständigt suger musten ur maskinen (konstigt:OO ) så jag letar nu efter alternativa vägar. Min tanke var att jag skulle minska ner mängden data som måste sökas igenom varje gång, genom att först skapa en temporär tabell som innehåller alla poster som innehåller "prefix_". Denna temporära tabell skulle jag sedan söka igenom på samma sätt som ovan (med replace) för att sedan slå ihop "info" med temptabellen igen. Detta borde väl ge en rätt stor prestandavinst?
Frågan är nu hur jag gör detta?
- Kopiera all data som innehåller "%prefix_%" till "tabell2".
- Slå ihop "tabell2" och "info" igen och se till så att alla rader i "info" som har samma ID som motsvarande rad i "tabell2" skrivs över.
DBMS: MySQL 4.0