[MySQL 4.x.x] Daten zu mehrern Datensätzen gleichzeitig ergängen
Accler
- datenbank
1 Voodoo0 Accler
0 Vinzenz Mai
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
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
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
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