1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

MySql Problem Feldmanipulation

Dieses Thema im Forum "MySQL" wurde erstellt von matthias-zimmer, 20 November 2010.

  1. matthias-zimmer

    matthias-zimmer Neuer Benutzer

    Hallo zusammen!

    Ich stehe vor einem (hoffentlich) kleinen SQL Problem und ich würde mich sehr freuen, wenn mir jemand kurz auf die Sprünge helfen könnte!!

    Also, ich habe eine kleine Datenbank zur Steuerung meiner Website. Darin finden sich viele Felder und ein "Sammelfeld" Longtext mit lauter Schlagworten. Für die Ausgabesteuerung greife ich u.a. auf dieses Feld zurück. Jetzt möchte ich in diesem Feld einige Schlagworte durch ein anderes Schlagwort ersetzen. Nur wie mache ich dies mit SQL...ich finde immer nur Hinweise, wie man ganze Felder ändert. Ich will aber nur einen kleinen Ausschnitt im dem Feld ändern.
    Über einen kleinen Hinweis würde ich mich sehr freuen!!

    Viele Grüße
    Matthias
     
  2. thomas_w

    thomas_w Datenbank-Guru

    AW: MySql Problem Feldmanipulation

    Das Ersetzen von Teilen einer Text-Spalte ist in SQL schwierig, da es auch dem Prinzip der SQL-Datenbanken (1. Normalform ) also einem "Sammelfeld" widerspricht. Das Ersetzen kann dann einfacher im Programm (z.B. PHP erfolgen). D.h. den Wert der Spalte lesen, in PHP ändern, den neuen Wert wieder speichern (UPDATE).

    Mit Stored Procedures incl. SUBSTR(), REPLACE(), REGEX() und diversen anderen Befehlen läßt es sich eventuell mit etwas Mühe mit SQL schaffen.

    Wenn Du ein kleines Beispiel lieferst (Tabellenstruktur, Beispieldaten) können wir Dir vielleicht helfen.

    Grüße
    Thomas
     
  3. matthias-zimmer

    matthias-zimmer Neuer Benutzer

    AW: MySql Problem Feldmanipulation

    Hallo Thomas,

    so was in der Richtung hatte ich mir schon gedacht :-(.
    Aber man soll die Hoffnung ja nicht aufgeben.

    Am einfachsten scheint mir die Methode mit PHP zu sein.

    Aber evtl. könnt ja etwas zaubern :).

    Hier ist der Aufbau der zentralen Tabelle:
    http://www.natur-server.de/SQl.jpg
    Im Feld schlagwort soll ein einzelner Begriff getauscht werden.
    Die Bedeutung der einzelnen Felder spielt hier ja keine Rolle.

    Viele Grüße und Danke!
    Matthias

    P.S.
    Früher habe ich so etwas sehr dirty gelöst, in dem ich die DB exportiert und dann mit einem Editor "Suchen und ersetzen" den Begriff geändert und dann die DB wieder importiert habe.
     
  4. thomas_w

    thomas_w Datenbank-Guru

    AW: MySql Problem Feldmanipulation

    Hallo Matthias,

    der Inhalt der Spalte sieht leider so chaotisch aus wie befürchtet. Das Feld sollte dringend normalisiert werden in eine "tier_hat_eigenschaft" Tabelle oder so was.

    Das mit dem DUMP der Datenbank in eine Textdatei, editieren und zurück ist natürlich auch eine Lösung. Am Besten Du baust Dir was in PHP für den Update der Spalte. Auf die Schnelle sehe ich das keine andere Lösung.

    Viel Erfolg!

    Grüße
    Thomas
     
  5. matthias-zimmer

    matthias-zimmer Neuer Benutzer

    AW: MySql Problem Feldmanipulation

    Hallo Thomas,

    dann mache ich mich mal an die PHP Lösung.

    Das Feld ist etwas chaotisch gefüllt...zugegeben...aber es macht mit wenig Aufwand genau das, was es soll. Alle Schlagworte jetzt in extra Felder auszulagern, wäre ein irrer Aufwand...ich schau mal. Zur Steuerung reicht es völlig, dass genau der richtige String im Feld vorkommt, was da noch so rumfliegt ist völlig egal. Und da es nur wenige tausend Datensätze sind, ist das System nicht ausgebremst.

    Erstmal lieben Dank für Deine Hinweise.

    Schönen Sonntag noch...
    Matthias
     

Diese Seite empfehlen