ich zur Zeit so etwas wie diese:mysql Fall in Update-Anweisung mit REPLACE
UPDATE table1 SET column1 = REPLACE(column1, 'abc', 'abc1') WHERE column1 LIKE '%abc%';
UPDATE table1 SET column1 = REPLACE(column1, 'def', 'def1') WHERE column1 LIKE '%def%';
Ich versuche, diese in eine einzige Update-Anweisung zu konsolidieren und ich versuche, die folgende:
UPDATE table1
SET column1 =
CASE
WHEN column1 LIKE '%abc%' THEN REPLACE(column1, 'abc', 'abc1')
WHEN column1 LIKE '%def%' THEN REPLACE(column1, 'def', 'def1')
ELSE column1
END;
Ist die der richtige Weg, dies zu tun? Ich bin neu im Fall/wann. Vielen Dank!
Insgesamt ist die Funktionalität, die Sie verwenden sehr langsam ist. 'LIKE' ist langsamer als' MATCH ... AGAINST', was langsamer als der Vergleich der Gleichheit ist. 'CASE WHEN' ist auch langsam. Davon abgesehen - wenn Sie eine große Tabelle haben, auf die ständig zugegriffen wird, dann sind 2 UPDATEs möglicherweise bequemer, da die Tabelle weniger Zeit stilllegt. – Mikhail
Warum möchten Sie die 2 Update-Anweisungen konsolidieren? Ich würde denken, dass du besser dran bist, es als 2 Updates zu tun –
das Problem ist, gibt es mehr wie 20 Aussagen im Moment, ich nur aus Gründen der Einfachheit 2 eingegeben. Ist es noch besser, alle einzelnen Aussagen zu verlassen? – Dima