UPDATEmit mehreren WHERE
Paul
- datenbank
Hi,
besteht irgendiwe die Möglichkeit eines UPDATE befehls mit mehren unterschiedlichen Where Möglichkeiten.
Beispiel:
UPDATE tabelle
SET BUCH='Gut'
WHERE
Author = 'Danny' OR
Author = 'Michael' OR
Author = 'George'
ELSE
WHERE
Author='Hans'
SET BUCh ='schlech'
...
Also eine Art Fallunterscheidung. Wenn der so heist, dann Update so, andernfalss so, und so weiter.
yo,
besteht irgendiwe die Möglichkeit eines UPDATE befehls mit mehren unterschiedlichen Where Möglichkeiten.
pro Update Befehle kann es nur eine WHERE klausel geben. Allerdings können unterabfragen eine eigene WHERE klausel besitzen.
was du aber machen willst ist, nicht in der WHERE klausel eine unterscheidung zu treffen, sondern in der SET klausel. Auch dort geht es, IF oder CASE sind dazu geeignete mittel. in der WHERE klausel nimmst du alle Datensätze rein, die du updaten willst, in der SET klausel bringst du die Unterscheidungslogik mit CASE oder IF rein, die du haben willst.
UPDATE tabelle SET buch = IF(author = 'Hans', 'schlecht', 'Gut')
WHERE Author IN ('Danny', 'Michael', 'George', 'Hans')
;
je nach Logik, die du implementieren willst, musst du die Anweisung entsprechend verändern.
btw,. du brauchst nicht für jede Zusatzfrage einen neuen Beitrag aufmachem oder deinen Bruder posten lassen.
Ilja
Danke dir für deine Geduld.
Könntest du mir für den CASE Fall bitte mal ein Beispiel geben, da ich in meiner Tabelle ungefähr 20 werte prüfen muss.
Beispiel:
CASE(author = 'Hans', 'Schlecht',NULL) ,
CASE(author = 'Dieter', 'Normal',NULL.)
....
Vielen Dank im voraus.
yo,
Könntest du mir für den CASE Fall bitte mal ein Beispiel geben, da ich in meiner Tabelle ungefähr 20 werte prüfen muss.
CASE author
WHEN 'Hans' THEN 'Schlecht'
WHEN 'Dieter' THEN 'Normal'
ELSE 'alle_anderen'
END CASE
Ilja
Also müsstet die Syntax grundsätzlichfolgendermaßen lauten:
UPDATE <<tabelle>>
SET <<Spalte zu updaten>> =
CASE <<Spalte des Case>>
WHEN "Fall1" THEN "Ergebnis"
ELSE "Ergebnis"
END CASE
WHERE <<Spalte des Case>>
IN (
<<alle Fälle>
)
Ist vielleicht ein wenig unglücklich formuliert, aber irgendiwe klaptt das in dieser form nicht.
Bekomme FM:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE
yo,
wenn du schon einen syntaxfehler bekommst, was hälst du von der idee, auch die genaue anweisung uns zu sagen, welche die fehlermeldung verursacht hat, oder gefällt dir die blaue schrift hier nicht, dass du mit informationen sparen willst ?
Ilja
Sorry ;)
SQL Befehl:
UPDATE t_buch
SET buch=
CASE author
WHEN 'Hans' THEN 'GUT
WHEN 'Werner' THEN 'Schlecht'
ELSE 'normal'
END CASE
WHERE author
IN (
'GUT'
'Schlecht'
'normal'
)
Fehlermeldung:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE
WHERE author
IN (
'GUT'
'Schlecht'
'normal'
) at line 7
yo,
der fehler liegt wohl in den fehlenden kommas
WHERE author IN ('GUT', 'Schlecht', 'normal')
Ilja
echo $begrüßung;
END CASE
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE
Vergleich doch mal deinen Versuch mit der im Handbuch angegebenen Syntax.
echo "$verabschiedung $name";