1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Text aus Datenbank Einträgen löschen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Ketose, 12 April 2016.

  1. Ketose

    Ketose Benutzer

    Hallo,
    ich bin im Bereich mysql ein Noob und suche Unterstützung zu folgendem Problem.
    Vor Jahren hatte ich in einem Forum ein Script, das jeden geposteten Link in einen BB-Code mit einem Zusatz verändert hat, dieser Zusatz muss jetzt weg.

    In der Tabelle "xf_post" der Datenbank meines XenForo-Forums befinden sich über 8000 Datensätze, die folgendes enthalten:
    Code:
    [URL="http://www.meinedomain.de/links.php?url=http://www.externer-Link.de/"]Linktext[/URL]
    Diese Einträge sollen jetzt geändert werden in:
    Code:
    [URL="http://www.externer-Link.de/"]Linktext[/URL]
    Also das dem eigentlichen Link vorangestellte:
    Code:
    http://www.meinedomain.de/links.php?url=
    soll entfernt werden.

    Natürlich befinden sich in den Datensätzen manchmal auf mehrere dieser Links und ne Menge anderer Text.

    Wer mag mich unterstützen?

    Vielen Dank

    Thorsten
     
  2. ukulele

    ukulele Datenbank-Guru

    Wenn der Teil mit meinedomain.de statisch ist dann wäre es mit einem simplen replace() vermutlich getan:
    Code:
    DECLARE   @i VARCHAR(100)
    SET     @i = '[URL="http://www.meinedomain.de/links.php?url=http://www.externer-Link.de/"]Linktext[/URL]'
    
    SELECT   replace(@i,'[URL="http://www.meinedomain.de/links.php?url=','[URL="')
     
  3. Ketose

    Ketose Benutzer

    Danke, jupp
    Code:
    [URL="http://www.meinedomain.de/links.php?url=
    ist statisch.
    Allerdings sind die externen Links nicht statisch.
    Hat das Einfluss auf die zweite Zeile im Code, oder ist danach egal um welche externe URL es sich handelt???
     
  4. ukulele

    ukulele Datenbank-Guru

    Also mit replace() suchst du nach einem (statischen) Text und ersetzt ihn durch einen anderen. Wird er nicht gefunden wird auch nichts ersetzt, alles andere drum herum bleibt bestehen.
     
  5. Ketose

    Ketose Benutzer

    Magst du mir bitte kurz erläutern wofür die ersten beiden Code Zeilen sind?

    Vielen Dank
     
  6. ukulele

    ukulele Datenbank-Guru

    Das ist einfach nur ein Testcode: Ich deklariere eine Variable, belege sie mit deinem gelieferten Ausgangswert und wende replace() darauf an.

    Du wirst einfach nur
    Code:
    UPDATE tabelle SET spalte = replace(spalte,'suchtext','ersatztext')
    brauchen.
     
  7. Ketose

    Ketose Benutzer

    Ahh, jetzt ja!
    War verwirrt, wegen der ersten beiden Zeilen.

    Tabelle = Tabellenname = "fx_post"
    Spalte = ???

    Danke, das so so viel Geduld mit mir hast...
     
  8. ukulele

    ukulele Datenbank-Guru

    Ich kenne deine Datenbankstruktur nicht und ganz erlich, wo deine Links stehen musst du schon selber wissen. Wer das nicht nachvollziehen kann, läßt das besser ein Systemhaus machen sonst geht noch was kaputt.
     
  9. Ketose

    Ketose Benutzer

    Ok, danke
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden