MySQL suchen und einen Text in einem Feld ersetzen
Frage
Was MySQL-Abfrage wird eine Textsuche tun und in einem bestimmten Feld in einer Tabelle ersetzen?
d. Suche nach foo
und ersetzen mit bar
so ein Datensatz mit einem Feld mit dem Wert hello foo
hello bar
wird.
Andere Tipps
UPDATE table_name
SET field = replace(field, 'string-to-find', 'string-that-will-replace-it');
Und wenn Sie möchten, basierend auf dem Wert eines anderen Feldes suchen und ersetzen Sie eine CONCAT tun könnte:
update table_name set `field_name` = replace(`field_name`,'YOUR_OLD_STRING',CONCAT('NEW_STRING',`OTHER_FIELD_VALUE`,'AFTER_IF_NEEDED'));
Nur dieses eine hier zu haben, so dass andere es auf einmal finden.
UPDATE table SET field = replace(field, text_needs_to_be_replaced, text_required);
Wie zum Beispiel, wenn ich alle Vorkommen von John Mark ersetzen möchten werde ich unten verwenden,
UPDATE student SET student_name = replace(student_name, 'John', 'Mark');
Die Ersetzen String-Funktion wird tun.
Nach meiner Erfahrung ist die schnellste Methode ist
UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE field LIKE '%foo%';
Die INSTR()
Art und Weise ist die zweitschnellste und Weglassen der WHERE
Klausel ganz am langsamsten ist, auch wenn die Spalte nicht indiziert ist.
Ich benutzte die oben Befehlszeile wie folgt: Update TABLE-NAME eingestellt FIELD = ersetzen (FIELD, 'und', 'und'); Der Zweck war, zu ersetzen und mit und ( „A“ soll klein geschrieben werden). Das Problem ist nicht die finden kann „und“ in der Datenbank, aber wenn ich wie „% und%“ verwenden, dann kann es sie zusammen mit vielen anderen ands finden, die Teil eines Wortes oder sogar diejenigen, die bereits klein geschrieben werden.