joe: Daten in Datenbank ändern

hallo,

ich hab in einer datenbank beiträge gespeichert, wobei jeder einzelne auch auf eine grafik verweist. die URL zur grafik soll jetzt geändert werden, und ich bin mir nicht sicher wie das genau funktioniert...

gibt es einen mysql-befehl, mit dem teile einer einzelnen tabellenzelle geändert werden können?

http://www.unihelp.cc/e107/e107_images/starwars.gif
auf http://www.unihelp.cc/e107/images/starwars.gif

so eine art UPDATE news_body mit "images" WHERE news_body beinhaltet "e107_images" als text

wie könnte man das problem lösen?

lg joe

  1. echo $begrüßung;

    gibt es einen mysql-befehl, mit dem teile einer einzelnen tabellenzelle geändert werden können?

    UPDATE SET feldname = änderungsfunktion(feldname) ...

    http://www.unihelp.cc/e107/e107_images/starwars.gif
    auf http://www.unihelp.cc/e107/images/starwars.gif
    wie könnte man das problem lösen?

    REPLACE() bietet sich dafür an.

    echo "$verabschiedung $name";

    1. Moin!

      gibt es einen mysql-befehl, mit dem teile einer einzelnen tabellenzelle geändert werden können?

      UPDATE SET feldname = änderungsfunktion(feldname) ...

      UPDATE ändert in einem bestehenden Datensatz ein oder mehrere Felder.

      REPLACE() bietet sich dafür an.

      REPLACE löscht einen existierenden Datensatz, bevor dieser mittels INSERT-Operation neu bzw. aktualisiert hinzugefügt wird. REPLACE hilft insbesondere nicht bei der hier ggf. notwendigen Ersetzungsoperation in den Grafiklinks.

      - Sven Rautenberg

      --
      My sssignature, my preciousssss!
      1. Hallo,

        REPLACE() bietet sich dafür an.

        REPLACE löscht einen existierenden Datensatz, bevor dieser mittels INSERT-Operation neu bzw. aktualisiert hinzugefügt wird.

        REPLACE() != REPLACE

        REPLACE hilft insbesondere nicht bei der hier ggf. notwendigen Ersetzungsoperation in den Grafiklinks.

        Warum soll REPLACE() da nicht helfen?

        viele Grüße

        Axel

        1. Moin!

          Warum soll REPLACE() da nicht helfen?

          Um 00:03h hilft es nicht mehr, ist doch offensichtlich, oder? :)

          - Sven Rautenberg

          --
          My sssignature, my preciousssss!
          1. also müsste dann folgender befehl richtig sein?

            SELECT REPLACE('e107_images', 'e107_', '');

            vielleicht kann mir das noch wer bestätigen?

            danke und lg

            joe

            Moin!

            Warum soll REPLACE() da nicht helfen?

            Um 00:03h hilft es nicht mehr, ist doch offensichtlich, oder? :)

            • Sven Rautenberg
            1. echo $begrüßung;

              also müsste dann folgender befehl richtig sein?

              SELECT REPLACE('e107_images', 'e107_', '');

              vielleicht kann mir das noch wer bestätigen?

              Jetzt lass dich mal nicht von Svens Missinterpretation (Replace-Funktion contra Replace-Statement) meiner Antwort verwirren.

              Mit SELECT fragst du Daten ab. Du möchtest die in der Tabelle enthaltenen Daten ändern. Dazu eigenet sich UPDATE, so wie inmeiner ersten Antwort beschrieben.

              Als Beispiel sieht deine Anwendung der Replace-Funktion schon mal gut aus. Doch im konkreten Fall müsstest du statt des ersten Parameters den Feldnamen angeben. Das Ergebnis der Funktion wird wieder dem Feld zugewiesen:

              UPDATE tabellenname SET feldname=REPLACE(feldname, 'e107_', '')

              Das Statement kann auch noch durch eine WHERE-Klausel ergänzt werden. (Ohne diese werden alle Datensätze betrachtet.) Das hat aber keine direkten Auswirkungen auf die Feldinhalte, für die die Replace-Funktion keine Änderung vornimmt. Aus Effizienzgründen wird ein Datensatz nicht geschrieben, wenn keine Änderungen erfolgen. Nicht einmal Timestamp-Felder werden dann verändert.

              echo "$verabschiedung $name";

              1. Hallo,

                »»gibt es einen mysql-befehl, mit dem teile einer einzelnen tabellenzelle geändert werden können?

                »»http://www.unihelp.cc/e107/e107_images/starwars.gif
                »»auf http://www.unihelp.cc/e107/images/starwars.gif

                UPDATE tabellenname SET feldname=REPLACE(feldname, 'e107_', '')

                Hm. Bei soetwas würde ich gerne immer auf Nummer Sicher gehen. Er hat im Ressourcenpfad "e107_images" in "images" verändert, also:

                UPDATE tabellenname SET feldname=REPLACE(feldname, 'e107_images', 'images')

                Mit "ersetze etwas durch '' oder durch NULL" bin ich _sehr_ vorsichtig geworden ;-)).

                viele Grüße

                Axel

                1. mission erfolgreich erledigt. danke für eure hilfe!
                  lg joe

                  Hallo,

                  »»gibt es einen mysql-befehl, mit dem teile einer einzelnen tabellenzelle geändert werden können?

                  »»http://www.unihelp.cc/e107/e107_images/starwars.gif
                  »»auf http://www.unihelp.cc/e107/images/starwars.gif

                  UPDATE tabellenname SET feldname=REPLACE(feldname, 'e107_', '')

                  Hm. Bei soetwas würde ich gerne immer auf Nummer Sicher gehen. Er hat im Ressourcenpfad "e107_images" in "images" verändert, also:

                  UPDATE tabellenname SET feldname=REPLACE(feldname, 'e107_images', 'images')

                  Mit "ersetze etwas durch '' oder durch NULL" bin ich _sehr_ vorsichtig geworden ;-)).

                  viele Grüße

                  Axel