bestimmen inhalt einer tabelle mit update ansprechen
Ilja
- datenbank
0 Alo0 Philipp Hasenfratz0 BerndG0 BerndG
0 AlexBausW
hi,
ich habe eine tabelle x, die aus 7 spalten besteht. die erste spalte ist die id und die zweite spalte ist ein verknpüfung zu einer anderen tabelle. es geht um die anderen 5 spalten, wo nur zahlenwerte enthalten sind.
meine problemstellung ist nun die, dass ich alle felder der 5 spalten updaten will, die einen bestimmten wert aufweisen und zwar nur diese felder.
beispiel:
1. datensatz: id, verknüfung, 10, 10, 12, 8, 145
2. datensatz: id, verknüfung, 13, 10, 14, 2, 98
ich will nun alle felder mit den wert 10 updaten auf den wert 0. ich kann einzelene spalten updaten mit den befehl:
UPDATE x SET spalte3=0 WHERE spalte3=10;
nun will ich das aber nicht für jede spalte wiederholen. gibt es eine sql-anweisung, die gleich alle gewünschten spalten 3 bis 7 erfasst und nur die entsprechenden felder ändert ?
Ilja
Mit disem befehl setzt du in allen records die felder auf 0 wenn eines der kriterien übereinstimmt du musst es mit mehreren update befehlen versuchen denke ich
update x set a=0, b=0,c=0 where a=10 or b=10
MFG Alo
Mit disem befehl setzt du in allen records die felder auf 0 wenn eines der kriterien übereinstimmt du musst es mit mehreren update befehlen versuchen denke ich
update x set a=0, b=0,c=0 where a=10 or b=10
MFG Alo
Kann nicht sein!
Das würde heißen er updated a, b und c wenn a oder b gleich 10 is.
Wenn jetzt aber c nicht 10 ist wird es trotzdem auf 0 gesetzt wenn a oder b gleich 10 ist. Jedoch soll ja c nur geändert werden wenn es den wert c hat!
Halihallo Ilja
- datensatz: id, verknüfung, 10, 10, 12, 8, 145
- datensatz: id, verknüfung, 13, 10, 14, 2, 98
UPDATE x SET spalte3=0 WHERE spalte3=10;nun will ich das aber nicht für jede spalte wiederholen. gibt es eine sql-anweisung, die gleich alle gewünschten spalten 3 bis 7 erfasst und nur die entsprechenden felder ändert ?
Ja, du musst einfach alle aufführen:
UPDATE x SET spalte3=0, spalte4=0, spalte5=0, [...] WHERE spalte3=10 AND spalte4=10
AND ...
anders geht es nicht... oder ich habe dein Vorhaben nicht verstanden...
Viele Grüsse
Philipp
hi,
ich habe eine tabelle x, die aus 7 spalten besteht. die erste spalte ist die id und die zweite spalte ist ein verknpüfung zu einer anderen tabelle. es geht um die anderen 5 spalten, wo nur zahlenwerte enthalten sind.
meine problemstellung ist nun die, dass ich alle felder der 5 spalten updaten will, die einen bestimmten wert aufweisen und zwar nur diese felder.beispiel:
- datensatz: id, verknüfung, 10, 10, 12, 8, 145
- datensatz: id, verknüfung, 13, 10, 14, 2, 98
ich will nun alle felder mit den wert 10 updaten auf den wert 0. ich kann einzelene spalten updaten mit den befehl:
UPDATE x SET spalte3=0 WHERE spalte3=10;
nun will ich das aber nicht für jede spalte wiederholen. gibt es eine sql-anweisung, die gleich alle gewünschten spalten 3 bis 7 erfasst und nur die entsprechenden felder ändert ?
Ilja
Sorry meine Antwort ging verschütt.
Halla Ilja,
Du mußt für jede einzelne Spalte ein UPDATE-Statement laufen lassen,
da sowohl die OR- als auch die AND-Verknüpfung in den u.s. Beiträgen
Dein Problem nicht löst.
Gruss
Bernd
Hallo,
ich habe eine tabelle x, die aus 7 spalten besteht. die erste spalte ist die id und die zweite spalte ist ein verknpüfung zu einer anderen tabelle. es geht um die anderen 5 spalten, wo nur zahlenwerte enthalten sind.
meine problemstellung ist nun die, dass ich alle felder der 5 spalten updaten will, die einen bestimmten wert aufweisen und zwar nur diese felder.[...]
ich will nun alle felder mit den wert 10 updaten auf den wert 0.
[...]
nun will ich das aber nicht für jede spalte wiederholen. gibt es eine sql-anweisung, die gleich alle gewünschten spalten 3 bis 7 erfasst und nur die entsprechenden felder ändert ?
Was haben denn die Spalten mit den Zahlenwerten für eine Bedeutung. Ich vermute nämlich, daß Dein Datenbankdesign nicht normalisiert ist, wenn Du schon so eine Update-Anweisung benötigst. Vielleicht kannst Du ja mal erklären, wie Deine Datenbank strukturiert ist, damit man schauen kann, ob bei einem anderen Design der Tabellen die Anweisung nicht in einem Rutsch zu erledigen ist.
Gruß Alex