Frank (no reg): SQL Update: mehrere Vorkommen ändern

Beitrag lesen

Hallo,

$aendern = "UPDATE tabelle Set spalte = REPLACE(spalte, 'alterstring', 'neuerstring')";

... mit Verlaub, aber das ist nicht wirklich eine "Lösung". Du änderst damit quasi JEDEN Datensatz und nicht nur die, die du willst, die betroffen sein sollten.. Wenn deine Tabelle nur 3 Einträge hat, dann mag sich das nicht so negativ äussern, aber bei einigen Tausend Einträgen wohl schon.

In deinem Ausgangsbeitrag schriebst du

  
$aendern = "UPDATE tabellenname SET spalte = '".$neuerstring."' WHERE title='".$alterstring."'";  

Es wird also nach EXAKTEN Übereinstimmungen in der Spalte "title" gesucht. Vielleicht hast du in der falschen Spalte gesucht. Auch das Ergebnis der beiden UPDATE statements ist schon von grund auf unterschiedlich: Bei der ursprünglichen Version wird der komplette Wert von der Tabellenspalte "spalte" durch den Wert aus $neuerstring ersetzt wo der Wert aus der Spalte "title" exakt dem Wert aus $alterstring entsprich. Bei deiner überarbeiten Version wird für jeden Datensatz die Spalte "spalte" nach dem Wert $alterstring durchsucht und ggf dieses Teilstück durch den Wert aus $neuerstring ersetzt. Wenn das Teilstück nicht gefunden wird, wird der Wert in der Spalte mit sich selbst ersetzt.

Was war denn die genaue Aufgabenstellung?

So long, Frank