Vinzenz Mai: UPDATE und Zeichenkettenfunktionen

Beitrag lesen

Hallo Philipp,

Ich habe ca. 400 Datensätze.

das ist nicht besonders viel.

Ich möchte, das überall wo im Datensatz ein "_" vorkommt, durch ein " " ersetzt wird. Das brauch ich da meine Suchmaschiene die Wörter sonst nicht findet.

Das ist, wie ich finde, gar keine gute Idee. Du solltest meiner Meinung nach nicht die Daten ändern, die gespeichert wurden (es sei denn es sind eh' unwichtige und uninteressante Informationen, die ruhig verloren gehen können). Du solltest besser Deine Suchmaschine so anpassen, dass sie mit dem Unterstrich zurecht kommt.

Wenn Du es dennoch machen willst, dann ist das folgende weder theoretisch noch praktisch der beste Weg.

Wie mache ich das am besten?
Ich muss doch theoretisch:
1.) Alle Datensätze auslesen.

Nein.

2.) jeden durchsuchen nach einem "_"

Nein.

3.) diese dann ersetzen durch ein " "

Nein.

4.) Die Datensätze alle updaten.

Nein.

Nicht in der Reihenfolge - und auch nicht alles.

Aber vorsicht. Nicht alle haben ein "_" im Datensatz.

Ja, das haben wohl alle verstanden, Die Dein Posting gelesen haben.

Von ca 400, haben ca 320 ein oder mehrere "_" im Datensatz. Das soll geändert werden.

Du möchtest also die Datensätze ändern, die einen Unterstrich enthalten.
Du möchtest den Unterstrich durch ein Leerzeichen ersetzen.

Konsultiere die Dokumentation Deines Datenbankmanagementsystems (DBMS) nach den entsprechenden Zeichenkettenfunktionen, die es bereit stellt.

Was Dein Problem mit PHP zu tun hat, will mir beim besten Willen nicht einleuchten. Du suchst doch eher eine SQL-Anweisung, die das erledigt, was Du vorhast.

UPDATE tabelle  
SET feld = neuer_wert(feld)      -- hier wende Stringfunktionen an.  
WHERE (feld enthält Unterstrich) -- Nutze entsprechende Funktionen Deines DBMS

Diese möchtest Du mit einem x-beliebigen Client Deines DBMS genau einmal ausführen. Du solltest in Zukunft darauf achten, keine Unterstriche mehr in der Datenbank abzuspeichern. Ok, da haben wir vermutlich die Verbindung zu PHP, da Deine Anwendung vermutlich in dieser Sprache geschrieben ist.

Ich wiederhole jedoch erneut: Ich halte das nicht für eine gute Idee. Verbessere Deine Suchmaschine; das erscheint mir sinnvoller.

Freundliche Grüße

Vinzenz