[MySQL] Update Query / Teilstring ersetzen

th23

Mitglied
Hallo,

ich habe eine grundsätzliche Frage: Ist es möglich per SQL (MySQL) eine UPDATE Abfrage nach folgende Systax auszuführen bzw. genauer, wie ist die korrekte Syntax?

Code:
UPDATE tabelle
  SET feld = "%neuer_ausdruck%"
  WHERE feld LIKE "%ausdruck%"

Also quasi soll nur der gesuchte Teil "ausdruck" in "feld" durch "neuer_ausruck" ersetzt werden... oder muss ich dazu die Abfrage ausführen um die Daten auszulesen, dann "feld" über PHP bearbeiten und dann updaten? (letzteres wäre natürlich nicht wünschenswert ;) )

Danke für die Hilfe,
Thorsten
 
Danke! Nach "replace" habe ich natürlich vergessen zu suchen... *kopfschüttel*

Geht denn dann folgender Code?

Code:
UPDATE tabelle
  SET field = REPLACE(field, ausdruck, neuer_ausdruck)
  WHERE INSTR(field, ausdruck) > 0;

Für mein Verständnis sollte es gehen... aber wenn es nicht ginge muss ich einen anderen Ansatz wählen für Teile der DB Struktur, deshalb die Frage auch vorab ohne Ausprobieren ;)

Danke
Thorsten
 
Das sollte funktionieren. Ausprobieren mußt Du es aber selber.
Wenn ich so drüber nachdenke, könnte man das WHERE vielleicht sogar weglassen (Wie ist der Rückgabewert von REPLACE wenn "Ausdruck" nicht enthalten ist?). Wenn es auch ohne WHERE geht, kannst du ja mal einen Performancevergleich machen.

Gruß hpvw
 
Hallo, hätte da mal eine Frage :
Versuche das Minuszeichen (-) zu ersetzen. Leider gibt er mir schon bei Select 0 Resultate an. Gibts es dafür eine Lösung?
 
Zeig doch mal dein Versuch, dann sehen wir ev. was du falsch machst.
Ein norlamer Replace funktioneirt
SQL:
SELECT REPLACE('abc-def', '-', ' minus ')
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück