Accler: [MySQL 4.x.x] Daten zu mehrern Datensätzen gleichzeitig ergängen

Hallo,
ich habe ein kleines Problem mit der MySQL. Undzwar stellte sich jetzt kurz vor onlinegang herraus, das eine Wert in einer Tabelle fehlte. Die Datenbank sieht ca. so aus:

-----------------------------------------------
|__ID__|_Name_|__________Data___________|_typ_|
|_001__|_X_Y__|_Data-1,Data-2,Data-3__|__2__|
|_002__|_X_Y__|_Data-3,Data-2,Data-7__|__1__|
|_003__|_X_Y__|_Data-8,Data-2,Data-5__|__1__|

_____________________[...]____________________

|_745__|_X_Y__|_Data-1,Data-2,Data-2__|__1__|
|_746__|_X_Y__|_Data-5,Data-2,Data-3__|__1__|
|_747__|_X_Y__|_Data-9,Data-2,Data-0__|__2__|
|_748__|_X_Y__|_Data-2,Data-2,Data-4__|__1__|
-----------------------------------------------

Wie ihr seht, ist die Spalte 'Data' mit unterschiedlichen Werten, pro Charakter gefüllt. Es befinden sich immer 1-10 VERSCHIEDENE Datensätze in jeder Tabelle. Die Datensätze sollen gleich bleiben und nur um den Wert Data-11 ergänzt werden. Desweiteren sollen nur die Datensätze verändert werden, die die Nummer bei 'typ' = 1 haben.
Es soll also danach so aussehen:
-----------------------------------------------------
|__ID__|_Name_|______________Data_____________|_typ_|
|_001__|_X_Y__|_____Data-1,Data-2,Data-3______|__2__|
|_002__|_X_Y__|_Data-3,Data-2,Data-7,Data-11__|__1__|
|_003__|_X_Y__|_Data-8,Data-2,Data-5,Data-11__|__1__|

_________________________[...]_______________________

|_745__|_X_Y__|_Data-1,Data-2,Data-2,Data-11__|__1__|
|_746__|_X_Y__|_Data-5,Data-2,Data-3,Data-11__|__1__|
|_747__|_X_Y__|_____Data-9,Data-2,Data-0______|__2__|
|_748__|_X_Y__|_Data-2,Data-2,Data-4,Data-11__|__1__|
-----------------------------------------------------

Es währe schön wenn mir jemand helfen könnte. Ich gehe davon aus das es sich  nur um einen kleinen SQL Befehlt handelt, jedoch erwähne ich mal mit, dass mir PHP 4 ebenfalls zur Verfügung steht.
Thanks for help

MfG:
Accler

  1. Hey,

    Dafür gibt es die Funktion CONCAT()
    (mir wäre auf jeden Fall keine andere Möglichkeit bekannt.)
    Deine Query sähe dann ungefähr so aus:
    UPDATE tabelle SET data = CONCAT(data,",Data-11") WHERE typ = '1'

    Grüße aus dem Wald
    Voodoo

    1. Hallo,

      Vinzenz:
      Es ist wirklich keine gute Idee, Daten nicht atomar abzuspeichern, hier Deine kommaseparierte Liste im Feld Data. Ändere dies bitte. Du wirst es Dir selbst danken.

      Es ist nett gemeint, aber nicht möglich. Ich verwende hier das Script eines guten bekannten. Er hat festgelegt, dass ich einige Datein nicht verändern darf. Dies ist eine Art Prüfung. Ich benötige dieses Script und er war bereit es mir zu geben, sofern ich einige Sachen nicht ändern, da er davon ausging, dass ich es in diesem Fall nicht verwenden könnte.

      Hey,

      Dafür gibt es die Funktion CONCAT()
      (mir wäre auf jeden Fall keine andere Möglichkeit bekannt.)
      Deine Query sähe dann ungefähr so aus:
      UPDATE tabelle SET data = CONCAT(data,",Data-11") WHERE typ = '1'

      Grüße aus dem Wald
      Voodoo

      Ich danke dir und hoffe, dass es nun funktioniert.

      MfG

  2. Hallo,

    ich habe ein kleines Problem mit der MySQL. Undzwar stellte sich jetzt kurz vor onlinegang herraus, das eine Wert in einer Tabelle fehlte. Die Datenbank sieht ca. so aus:


    |__ID__|_Name_|__________Data___________|_typ_|
    |_001__|_X_Y__|_Data-1,Data-2,Data-3__|__2__|
    |_002__|_X_Y__|_Data-3,Data-2,Data-7__|__1__|
    |_003__|_X_Y__|_Data-8,Data-2,Data-5__|__1__|

    Dein Tabellendesign ist sehr verbesserungswürdig. Bitte bringe Deine Tabellen zuallererst einmal in die erste Normalform.

    Es ist wirklich keine gute Idee, Daten nicht atomar abzuspeichern, hier Deine kommaseparierte Liste im Feld Data. Ändere dies bitte. Du wirst es Dir selbst danken.

    Freundliche Grüße

    Vinzenz